使用 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" )
);
);