2017-12-04 9 views
-2

複数のスクリプトを使用すると、一度簡単に私の壁紙を変更するスクリプトが見つかりました。powershell.exeの引数としてスクリプト全体を渡す

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

しかし、私はスクリプトを呼び出す別のリンクが必要です。 これで、複数行のコードをパラメータとしてpowershell.exeに直接渡すことができるのだろうかと思います。

私は;を使用して複数の行を割り当て、1つのライナーを構築しようとしましたが、それは実行されません...または実行され、フィードバックはありません。実行中の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}')" 

私は基本的にはちょうどそれらを連結し、特殊文字をエスケープするために、単一引用符と二重引用符を交換し、なぜそれが別のスクリプトとして動作しませんか?スクリプト(Filename.ps1)として

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

保存これ、および.batまたは.cmdファイルからそれを呼び出す:PowerShellで

+0

スクリプトをpowershell.exeコマンドラインから実行する場合は、t彼は '-File'パラメータを使います。 (powershell.exeコマンドラインで '-File'を最後に指定する必要があります。) –

+0

これはvbscript ..ではないpowershell – TheIncorrigible1

+0

私はpowershell.exeコマンドラインを参照して、すでに投稿されたコメントに名誉ある紳士を紹介します、それ以下)。 –

答えて

2

コマンドでワンライナーとして、また

%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

ありがとう、その1ライナーは私が探したものです! – Kartoffel

関連する問題