여러 파일에 대해 파일 기능을 수행하는 방법. 와일드카드를 사용할 수 없는 것 같나요?와일드카드를 사용하여 여러 파일에 대해 파일 기능을 어떻게 수행합니까? 파일 작업을 마친 후 해당 파일을 다음과 같은 해당 폴더로 정렬하고 싶다고 가정해 보겠습니다.
Move Files("c:/temp/*.jmp", "c:/temp/processed_jmp/");
Move Files("c:/temp/*.csv", "c:/temp/processed_csv/");와일드카드에서는 작동하지 않는 것 같습니다. 나는 모든 파일의 목록을 가져오고 각 확장자에 대해 별도의 목록으로 나눈 다음 FOR 루프를 만들어 각 파일을 반복하는 것을 싫어합니다.... 더 우아한 방법이 있나요?
Re: 여러 파일에 대해 파일 기능을 수행하는 방법. 와일드카드를 사용할 수 없는 것 같나요?네, 이걸 더 우아하다고 할 수는 없을 것 같아요. 예, 이 솔루션을 보았지만 현재 솔루션을 고수하고 싶습니다.
정말 감사합니다!Re: 여러 파일에 대해 파일 기능을 수행하는 방법. 와일드카드를 사용할 수 없는 것 같나요?다음과 같은 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에 전달합니다.
Re: 여러 파일에 대해 파일 기능을 수행하는 방법. 와일드카드를 사용할 수 없는 것 같나요?지금은 다음과 같이 구현했습니다.
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]));
);
근데 좀 어색해 보이는데...