PowerShell의 변수에 저장된 명령 실행
PowerShell의 변수에 빌드하고 저장한 명령이 있습니다.이 명령은 쓰기 호스트를 수행하고 표준에 복사하여 붙여넣을 경우에 작동합니다.cmd.exe
창문
스크립트 내부에서 이 명령을 실행하려면 어떻게 해야 합니까?
나는 여러 번 Invoke-Command 또는 Invoke-Expression 조합을 시도했지만 실패했습니다.
다음과 같이 변수를 작성했습니다.
$cmd1 = $arcprg + $arcdir + "\" + $site1 + "-" + $hst + "-" + $yesterday + ".zip " + $logpath1 + "u_ex" + $yesterday + ".log"
화면에 출력되는 변수는 다음과 같습니다.
7z.exe a -tzip c:\arc_logs\site-host-at-web1-100827.zip c:\inetpub\logs\logfiles\w3svc1\u_ex100827.log
없는 또 다른 방법이 있습니다.Invoke-Expression
두 개의 변수(명령: 문자열 및 매개 변수: 배열)를 사용합니다.저한테는 잘 맞습니다.추정하다7z.exe
시스템 경로에 있습니다.
$cmd = '7z.exe'
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& $cmd $prm
명령이 알려진 경우(7z.exe) 매개 변수만 가변적이면 다음과 같이 됩니다.
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& 7z.exe $prm
그건 그렇고.Invoke-Expression
하나의 매개 변수로 나에게도 작동합니다. 예를 들어, 이것이 작동합니다.
$cmd = '& 7z.exe a -tzip "c:\temp\with space\test2.zip" "C:\TEMP\with space\changelog"'
Invoke-Expression $cmd
추신. 저는 보통 매개 변수 배열이 있는 방법을 선호합니다. 왜냐하면 그것은 다음을 위한 표현을 만드는 것보다 프로그래밍적으로 구성하는 것이 더 쉽기 때문입니다.Invoke-Expression
.
다음을 사용하여 명령을 호출해 보십시오.Invoke-Expression
:
Invoke-Expression $cmd1
다음은 내 기계의 작동 예입니다.
$cmd = "& 'C:\Program Files\7-zip\7z.exe' a -tzip c:\temp\test.zip c:\temp\test.txt"
Invoke-Expression $cmd
iex
의 별칭입니다.Invoke-Expression
그래서 당신은 할 수 있습니다.
iex $cmd1
전체 목록을 보려면 https://ss64.com/ps/ 을 방문하십시오.Powershell
물건.
행운을 빕니다...
언급URL : https://stackoverflow.com/questions/3592851/executing-a-command-stored-in-a-variable-from-powershell
'source' 카테고리의 다른 글
Windows GUI: WPF 또는 WinRT(2015+) (0) | 2023.04.26 |
---|---|
SQL Server 2008 데이터베이스를 오프라인으로 설정하는 방법 (0) | 2023.04.26 |
패키지 '@angular/cli'는 종속성이 아닙니다. (0) | 2023.04.26 |
의 형식 문자열에서 가새(곡선 괄호)를 이스케이프하는 방법.그물 (0) | 2023.04.26 |
명령 프롬프트에서 Python 명령이 작동하지 않음 (0) | 2023.04.26 |