バッチファイルを使用してPowerShellスクリプトを実行しようとしています。私は私のエコーを私のコンピュータをつけることができるようにしたいので私はこれをしたいと思う。 (エコーからWOLリクエストを送信する方が簡単ですが、学習目的でPowerShellを使用したい)ちょうど)、それらを表示したくない:私は.BATファイルを実行するとバッチファイルを使用してWOL PowerShellスクリプトを実行する
@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%script.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'";
pause
今、私はこのエラーを得るでしょう:
Send-WOL -mac ------- -ip --------
をそれから私の.BATファイルには、これを含ま
Send-WOL : The term 'Send-WOL' is not recognized as the name of a cmdlet, function, script file or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At C:\Users\hao\Desktop\WOL main\Script.ps1:1 char:1 + Send-WOL -mac █████████████████ -ip █████████████ + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (send-WOL:String) [], CommandNotFoundExeption + FullyQualifiedErrorId : CommandNotFoundExeption Press any key to continue . . .
私はスクリプト内に正確に同じコマンドを入れても、手動でPowerShellに完全に動作します。
PowerShellは 'Send-WOL.ps1'を見つけられません。おそらく、その場所がPATHにないか、そのスクリプトのコードをプロファイルに入れているからです。バッチファイルはロードされません)。 –
'-File'の代わりに' -Command'を使う理由は? '@Powershell -NoProfile -ExecutionPolicy Bypass -File%〜dp0script.ps1'、そしてパスにスペースが含まれている場合はパスを引用符で囲んでください。 '-Command'を使いたいなら' .ps1'ファイルを使う必要は全くありません! '@Powershell -NoProfile -ExecutionPolicy Bypass -Command" Send-WOL -mac ------- -ip -------- "'。 – Compo
'Set-Location $ PSScriptRoot'をあなたのscript.ps1ファイルに追加してみてください – TToni