PowerShell에서 CMD 명령 실행
PowerShell 명령을 실행하는 데 많은 문제가 있습니다. CMD 프롬프트 창에서 실행되는 명령을 실행하는 것뿐입니다.
다음은 명령입니다.
"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME
나는 성공하지 못한 채 다음을 시도했습니다 (나는 작동하는 것을 시도하고 얻기 위해 이것의 많은 반복을 시도했습니다. 구문은 아마도 모두 망가졌습니다) :
$TEXT = $textbox.Text #$textbox is where the user enters the PC name.
$CMDCOMMAND = "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"
Start-Process '"$CMDCOMMAND" $TEXT'
#iex -Command ('"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"' $TEXT)
이 명령은 사용자가 텍스트 상자에 지정한 컴퓨터에 대한 SCCM 원격 연결 창을 엽니 다.
이 시도:
& "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME
PowerShell에서 문자열 "..."은 문자열 일 뿐이며 PowerShell은이를 화면에 반영하여 평가합니다. PowerShell에서 이름이 문자열로 된 명령을 실행하도록하려면 call operator를 사용합니다 &.
PowerShell에서 외부 적으로 배치 파일을 실행하거나 변환하려면 (특히 예약 된 모든 작업 스크립트에 인증서에 서명하려는 경우) 간단히 PowerShell 스크립트 (예 : deletefolders.ps1)를 만듭니다.
스크립트에 다음을 입력하십시오.
cmd.exe /c "rd /s /q C:\#TEMP\test1"
cmd.exe /c "rd /s /q C:\#TEMP\test2"
cmd.exe /c "rd /s /q C:\#TEMP\test3"
* 각 명령은 cmd.exe를 다시 호출하는 새 줄에 입력해야합니다.
이제이 스크립트는 명령 프롬프트에 cmd직접 명령을 출력하는 PowerShell에서 서명하고 실행할 수 있습니다.
배치 파일을 실행하는 것보다 훨씬 안전한 방법입니다!
한 가지 해결책은 PowerShell에서 CMD로 명령 을 파이프하는 것입니다. 다음 명령을 실행하면 명령이 notepad.exeCMD로 파이프 되어 메모장 응용 프로그램이 열립니다.
PS C:\> "notepad.exe" | cmd
명령이 CMD에서 실행되면 PowerShell 프롬프트로 돌아가고 PowerShell 스크립트를 계속 실행할 수 있습니다.
편집
CMS의 시작 메시지가 표시됨
로 mklement0 점에서,이 방법은 쇼 CMD의 시작 메시지. 위의 방법을 사용하여 출력을 다른 터미널에 복사하면 시작 메시지도 함께 복사됩니다.
이 정보가 필요한 사람들을 위해 :
나는 당신 PATH이 PS 스크립트 에서 당신의 명령을 거의 실행할 수 있다는 것을 알았고 그것은 작동해야합니다.
때때로이 명령을 사전 실행해야 할 수 있습니다. cmd.exe /c
예
PS 스크립트에서 git 호출
PS 스크립트를 대량으로 사용 하는 git클라이언트 를 다시 포장해야했습니다 Chocolatey(모르는 사람들에게는 일종의 Windows 용 앱 스토어입니다).
한 번 , 다음과 같은 명령 git이 있음을 알았습니다.PATH
$ca_bundle = git config --get http.sslCAInfo
변수 에 git crt파일 의 위치를 저장합니다 $ca_bundle.
앱을 찾고
현재 SO 포스트 와이 SO 포스트 의 조합 인 또 다른 예 는 where명령 의 사용입니다.
$java_exe = cmd.exe /c where java
변수 에 java.exe파일 의 위치를 저장합니다 $java_exe.
이 외부 프로그램을 시작하려면 Invoke-Command cmdlet을 사용해야합니다. 일반적으로 노력없이 작동합니다.
둘 이상의 명령이 필요한 경우 -scriptblock옵션 과 함께 Invoke-Expression cmdlet을 사용해야합니다 .
참고 URL : https://stackoverflow.com/questions/24940243/running-cmd-command-in-powershell
'program story' 카테고리의 다른 글
| TeamCity에서 배포 한 내 nuget 패키지로 디버그하는 방법은 무엇입니까? (0) | 2020.11.11 |
|---|---|
| NumPy 배열에서 특정 행과 열 선택 (0) | 2020.11.11 |
| 오류 : ggplot2 및 data.table에 대한 패키지 또는 네임 스페이스로드 실패 (0) | 2020.11.11 |
| TensorFlow : InternalError : Blas SGEMM 시작 실패 (0) | 2020.11.11 |
| HTTPclient 콘텐츠 유형 = application / x-www-form-urlencoded를 사용하여 POST하는 방법 (0) | 2020.11.11 |