使用 RunProgram 複製文件我需要不時更新用戶PC上的一些配置文件,我想自動完成。 過去,我創建了臨時 .bat 文件並使用 open() 執行它們。 現在我正在嘗試使用 runprogram 來做同樣的事情,但它不起作用。 我想我快到了 - 非常感謝任何幫助。
這是我的程序:
old_file = "C:\some directory\file1.ext";
new_file = "Z:\zdrive folder\file1.ext";
d1 = last modification date(old_file);
d2 = last modification date(new_file);
if (d1 != d1,
options_list = evallist({"copy", "/y", evalinsert("\["^new_file^"]\"), evalinsert("\["^old_file^"]\")});
status = runprogram(executable("cmd.exe"), options(options_list), readfunction("text"));
);如果日期不相同,它會在每個文件名路徑周圍加上雙引號,並在 DOS shell 中執行 copy/y。 我正在運行 Windows 7 順便說一句。 我在 DOS 窗口中運行了字符串,它複製了文件沒有問題。
Re: 使用 RunProgram 複製文件關於的幾點說明拷貝文件(從文件到文件) :
- 這歸檔不存在,所以我必須先刪除它(使用文件已存在和刪除文件)
- 這拷貝文件程序處理 unc-path 文件名(例如 \\smith.company.com\dir1\dir2\dir3\file.ext)。 DOS 複製命令似乎有問題。
所以,拷貝文件統治一天! 再次感謝。
Re: 使用 RunProgram 複製文件謝謝賈斯汀和克雷格。 我想我會用拷貝文件因為這是一個更直接的解決方案。 不過知道怎麼用就好了運行程序使用內置的 DOS 命令。
Re: 使用 RunProgram 複製文件更多信息這裡,它解釋了 dir 和 copy 是內置在 cmd.exe 解釋器中的。
Re: 使用 RunProgram 複製文件實際上有一個 JSL 函數(複製文件)可以為您執行此操作。
如果您更喜歡使用 RunPogram,則需要在單個字符串選項中包含帶有兩個文件路徑的複制命令。 我還需要包含“/c”選項以便在終止之前執行命令。
Names Default To Here( 1 );
old_file = "C:\some directory\file1.ext";
new_file = "Z:\zdrive folder\file1.ext";
d1 = last modification date(old_file);
d2 = last modification date(new_file);
if (d1 != d1,
command_string = "/c copy" || new_file || " " || old_file;
status = RunProgram(
Executable( "CMD.EXE" ),
Options( {"/y", command_string} ),
ReadFunction( "text" )
);
);