2017-12-04 1 views
-2

여러 스크립트를 사용하는 경우 한 번 스크립트를 사용하여 쉽게 내 배경 화면을 쉽게 변경할 수 있습니다.전체 스크립트를 powershell.exe에 인수로 전달

set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.SendKeys("^ ") 
WshShell.SendKeys("+{F10}") 
WshShell.SendKeys("n") 
WshShell.SendKeys("{ENTER}") 

그러나 스크립트를 호출하는 별도의 링크가 필요합니다. 이제 매개 변수로 여러 줄의 코드를 powershell.exe에 직접 전달할 수 있을지 궁금합니다.

;을 사용하여 여러 줄을 할당 할 수 있고 한 줄짜리 건물을 만들었지 만 실행되지 않거나 실행되지 않고 아무런 변화가 없다는 것을 읽었습니다. 실행중인 PowerShell 인스턴스에 명령 행을 붙여 넣으면 그냥 종료됩니다.

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -Command "set WshShell = WScript.CreateObject('WScript.Shell'); WshShell.SendKeys('^ '); WshShell.SendKeys('+{F10}'); WshShell.SendKeys('n'); WshShell.SendKeys('{ENTER}')" 

나는 기본적으로 단지 그들을 연결된 및 특수 문자를 탈출하는 작은 따옴표와 큰 따옴표를 대체, 왜는 별도의 스크립트로 작동하지 않는 이유는 무엇입니까?

+0

powershell.exe 명령 줄에서 스크립트를 실행하려면 t 그는'-File' 매개 변수입니다. (powershell.exe 명령 줄에서'-File'을 마지막으로 지정해야합니다.) –

+0

즉, vbscript ..가 아닌 powershell – TheIncorrigible1

+0

나는 powershell.exe 명령 줄을 참조하는 이미 게시 된 주석에 대해 명예로운 신사를 추천합니다 , 아무것도 덜). –

답변

2
PowerShell에서

: 스크립트 (Filename.ps1) 등

$WSH = New-Object -ComObject 'WScript.Shell' 
$WSH.SendKeys('^ ') 
$WSH.SendKeys('+{F10}') 
$WSH.SendKeys('n') 
$WSH.SendKeys('{ENTER}') 

저장이, 그리고 .bat 또는 .cmd 파일에서 호출 : 명령에서 한 - 라이너로,

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -File "path\filename.ps1" 

또는 파일 :

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "$WSH = New-Object -ComObject 'WScript.Shell';$WSH.SendKeys('\^ ');$WSH.SendKeys('+{F10}');$WSH.SendKeys('n');$WSH.SendKeys('{ENTER}')" 
+0

감사합니다, 그 한줄짜리가 내가 찾던 바로 그 것입니다! – Kartoffel