如何對多個文件執行文件函數。 貌似不能用通配符?如何使用通配符對多個文件執行文件函數? 假設完成文件後,我想將它們分類到相應的資料夾中,如下所示:
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]));
);
但看起來很尷尬...