programing

각 루프에서 프로그램 실행

padding 2023. 8. 26. 10:31
반응형

각 루프에서 프로그램 실행

이 간단한 PowerShell 스크립트를 작동시키려고 하는데, 근본적으로 뭔가 잘못된 것 같습니다. ;-)

ls | ForEach { "C:\Working\tools\custom-tool.exe" $_ }

기본적으로 디렉터리에 있는 파일을 가져와 사용자 지정 도구에 인수로 하나씩 전달하고 싶습니다.

명령 경로 주변에 따옴표가 여전히 필요한 경우(예: 공간이 있는 경우) 다음과 같이 하십시오.

ls | % { &"C:\Working\tools\custom-tool.exe" $_.FullName }

문자열 앞에 &fore를 사용하여 PowerShell이 문자열이 아닌 명령으로 해석하도록 합니다.

ls | %{C:\Working\tools\custom-tool.exe $_}

각 개체가 파이프라인 아래로 내려오면 도구가 해당 개체에 대해 실행됩니다.명령 문자열 주위에 따옴표를 붙이면...끈!그러면 로컬 변수 "$_"가 오류와 함께 토해내는 것을 어떻게 해야 할지 모를 수 있습니다.

저는 당신의 도구가 완전한 경로를 필요로 한다고 확신합니다.$_는 파이프라인을 통해 들어오는 각 파일 개체입니다.다음과 같은 표현을 사용해야 할 수 있습니다.

ls | %{C:\Working\tools\custom-tool.exe $_.fullname}

제프리 힉스와 슬립섹 둘 다 맞습니다.큰따옴표를 뽑아냅니다.

$_ 또는 $.fullname이(가) 내 테스트 스크립트에서 작동했습니다.사용자 지정 도구를 사용한 YMMV.

gci | % { c:\windows\notepad.exe $_.fullname }

또는

gci | % { c:\windows\notepad.exe $_ }

언급URL : https://stackoverflow.com/questions/181036/run-a-program-in-a-foreach-loop

반응형