如何对多个文件执行文件函数。 貌似不能用通配符?如何使用通配符对多个文件执行文件函数? 假设完成文件后,我想将它们分类到相应的文件夹中,如下所示:
Move Files("c:/temp/*.jmp", "c:/temp/processed_jmp/");
Move Files("c:/temp/*.csv", "c:/temp/processed_csv/");看起来这不适用于通配符。 我不想获取所有文件的列表,将其分成每个扩展名的单独列表,然后进行 FOR 循环来迭代每个文件...... 有没有更优雅的方法来做到这一点?
回复:如何对多个文件执行文件功能。 貌似不能用通配符?是的,我不会说这更优雅。 是的,我已经看到了这个解决方案,但我宁愿坚持我当前的解决方案。
多谢!回复:如何对多个文件执行文件功能。 貌似不能用通配符?您可以使用 RunProgram,类似这样(完整示例的大量设置)
Delete Directory( "$temp/aaa" ); // make sure source is empty
Create Directory( "$temp/aaa" );
Save Text File( "$temp/aaa/a1.txt", "a" );
Save Text File( "$temp/aaa/a2.txt", "aa" );
Save Text File( "$temp/aaa/a3.bad", "no suffix" );
Delete Directory( "$temp/bbb" ); // make sure dest is empty
Create Directory( "$temp/bbb" );
aaa = Convert File Path( "$temp/aaa", "windows" ); // "C:\Users\v1\AppData\Local\Temp\aaa"
bbb = Convert File Path( "$temp/bbb", "windows" ); // "C:\Users\v1\AppData\Local\Temp\bbb"
aaawild = aaa || "\a*.txt"; // wild card *
result = Run Program( Executable( "CMD.EXE" ),
Options( {"/a", "/q", "/c move ", aaawild, bbb} ), ReadFunction( "text" ) );
Write( result );
Show( Files In Directory( aaa ) );
Show( Files In Directory( bbb ) );
C:\Users\v1\AppData\Local\Temp\aaa\a1.txt
C:\Users\v1\AppData\Local\Temp\aaa\a2.txt
已移动 2 个文件。
目录中的文件(aaa) = {"a3.bad"};
目录中的文件(bbb) = {"a1.txt", "a2.txt"};
/a 和 /q 是选项对于 CMD.EXE,/c 将移动命令传递给 CMD.EXE。
回复:如何对多个文件执行文件功能。 貌似不能用通配符?现在我已经这样实现了:
path = "c:/temp/";
pathProcessed = path||"processed/";
listOfFiles = Files In Directory(path);
for(i=1, i<=N Items(listOfFiles), i++,
if(Contains(listOfFiles[i], ".jmp")>0, Move File(path||listOfFiles[i], pathProcessed||listOfFiles[i]));
);
但看起来很尴尬...