디렉토리의 모든 파일 (및 가능한 경우 하위 디렉토리)에서 명령을 실행하는 명령 행 루프


14

나는 이것이 매우 쉽다고 가정하지만 Windows의 명령 줄 유틸리티에 대한 경험이 없습니다. 기본적으로 디렉토리의 모든 파일을 반복해야합니다 (하위 디렉토리를 수행 할 수 있으면 좋지만 필요한 경우 5 개의 디렉토리 각각에서 실행할 수 있음), 이름을 변수로 가져 와서 실행해야합니다.

"C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
   -colorspace Gray -colors 32 file_var file_var

loop 명령 프롬프트에서 파일 이름을 동적으로 보았습니다 . 그것을 사용할 수 있습니까 (위의 명령으로 SET ...을 교환)? 해당 컴퓨터의 공간이 제한되어 있으므로이 단계에서 실행하기 전에 백업을 수행 할 수 없습니다 (나쁘지 않습니다).


Robert, 본인의 질문에 답변 한 경우 본인의 답변을 추가하고 올바른 답변으로 수락하십시오.
Julian Knight

나는 그것이 당신이 원하는 것이라고 생각하지 않습니다. 그것의 끝 ( "%%f" "%%f")은 파일 이름 (정규화 된 경로와 함께)을 두 번 배치합니다. "%%f" "%%~dpnf.gif"출력 파일의 확장자를 변경하는 것과 같은 것을 사용하고 싶을 것입니다 .
Synetech

@JulianKnight-감사합니다. 실제로 되돌아 가려고 시도했지만 그렇게하기 위해 강제 대기가 있다고 생각합니다. 그 이후로 질문에 대해 잊어 버렸습니다.
Robert

답변:



5

PowerShell 열기

$files = Get-ChildItem -Recurse 
foreach ($file in $files){
    c:\windows\System32\notepad.exe $file.FullName
}

Get-ChildItem은 현재 하위 디렉터리에서 파일 목록을 개체로 검색합니다. "-recurse"에는 하위 디렉토리가 포함됩니다. 배열 $ Files에 배치합니다.

foreach 루프는 각 파일을 순환하고 각 파일에 대한 전체 파일 이름 경로의 명령 줄 인수와 함께 notepad를 호출합니다.

주의 : 각 파일마다 메모장 인스턴스가 열리므로 작은 텍스트 파일이 몇 개있는 디렉토리에서 위의 코드를 테스트하십시오.

그것은 당신이하고 싶은 일을하는 방법에 대한 아이디어를 줄 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.