質問: パラメーターを使用したバッチ内でのpowershellの実行について 私はしばらくこれを掘り下げてきましたが、これがどのように機能するか理解できませんでした。私が必要なのは: バッチファイルを実行できる バッチファイルにはパラメータが必要です パラメータは、バッチファイルから同じファイル内のpowershellスクリプトに渡す必要があります なぜこれが必要なのですか?何かを行うには単純なバッチファイルを実行する必要がありますが、powershellからのみ機能する高度な機能が必要なためです。具体的には、アプリケーションによってはsavefiledialogが必要です。以下は、私が現在持っているもので、savefiledialogの複雑な部分を取り除き、単純なバッチ+ powershell部分を残しました。<# : @echo off setlocal powershell -noprofile "iex (${%~f0} | out-string)" goto :eof #> write-host "hello, i'm powershell!" これらすべてをバッチファイルに入れると、たとえば、myfile.batとなります。実行してpowershellを呼び出し、そのメッセージを書き込みます。私の質問/リクエスト:myfile.bat param1 param2 param3を実行して、これらの引数/パラメーターをpowershellスクリプトに渡すにはどうすればよいですか? powershellのwrite-hostを介してパラメーターを出力するだけの最小限の例に本当に感謝します。詳細はお気軽にお問い合わせください。ありがとうございました!
回答: バッチ変数をバッチファイル内からpowershell行に直接渡します。これをテストするために、write-hostコマンドレットを引数として渡しました。foo.bat:@echo off set arg1=%1 powershell.exe %1 "this is from powershell" pause .batを引数付きで起動し、.\foo.bat write-host 出力:this is from powershell press any key to continue . . .