- ベストアンサー
batでフルパスを指定する場合
以下をBATで処理したいのですが フォルダに空白を使用しているので、二重引用符(")でパスを囲む必要があります。 どこからどこまでを二重引用符(")囲めば良いか教えて下さい。 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype amd64 C:\Win11_JA-JP\WinPE_amd64 環境変数にパスを指定すれば良さそうですが それ以前に基本的なところでミスしています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1つのまとまりとして解釈して欲しい部分を、くくります。 通常のコマンドラインは、「(実行ファイル名) (パラメータ1) (パラメータ2) …」のように打ちますが、その区切りが空白であるから、フォルダ名に空白が入ると、実行ファイル名がわからなかったり、パラメータが泣き別れになってしまったりするわけです。 ご質問のバッチは、 「C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools」フォルダにある 「copype(.exe)」プログラムを パラメータ1「amd64」 パラメータ2「C:\Win11_JA-JP\WinPE_amd64」 で実行する。 としたいわけですね。 今回パラメータ1・2には空白が含まれないので、くくる必要がありません。 実行ファイルのパス名に空白が含まれていて困るので、そのまま書くと「C:\Program(.exe)」というプログラムを実行しようとして、エラーになります。 ですから正しくは、 "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype" amd64 C:\Win11_JA-JP\WinPE_amd64 または "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools"\copype amd64 C:\Win11_JA-JP\WinPE_amd64 となります。 ※フォルダ名だけくくるか、実行プログラム名までまとめてくくるかの違い。どちらでも良いです。 またもし、第2パラメータが「C:\Backup Files\WinPE_amd64」みたいに空白を含むならば、 "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype" amd64 "C:\Backup Files\WinPE_amd64" というようすれば、第2パラメータを誤解されなくなります。 (くくっていないと、パラメータ2「C:\Backup」、パラメータ3「Files\WinPE_amd64」に誤解してしまう)
その他の回答 (3)
- asciiz
- ベストアンサー率70% (6809/9681)
>(コマンドは実行されていないようです。) > >"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype" amd64 C:\Win11_JA-JP\WinPE_amd64 >pause > >原因がわからずどうすれば対処できますか ? まあ気になるのは、第一パラメータの「amd64」です。 これも、フォルダ名指定ではないですか? その場合、カレントフォルダにある「amd64」フォルダを指しますが、実行時のフォルダがどこになっているかが問題です。 バッチファイルを直接実行した場合、そのバッチファイルのある場所が実行時フォルダとなっている場合が多いですが。 タスクマネージャから実行させた場合、「C\Windows\System32」などがカレントフォルダになっている場合があります。 「C\Windows\System32」には 「amd64」フォルダは存在しないので、何もせずに終わってしまいます。みたいな。 ですからフォルダ名であるならば、パラメータ1も絶対パス指定した方が良いでしょう。 もしそれが空白を含むなら、そこもくくりましょう。 (例) "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype" "C:\sub folder\amd64" C:\Win11_JA-JP\WinPE_amd64
お礼
すいません。 また、ミスがりました。 amd64 と すべきを 先程は amd として処理しました。 amdをamd64に変更してBATで処理しようとしましたが 下記エラーがやはり出ます。 C:\WINDOWS\system32>"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype amd64 C:\Win11_JA-JP\WinPE_amd64 '"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 パスが、C:\WINDOWS\system32>からではうまく処理できず C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools まで移動しないと処理できないようです。
補足
引き続きありがとうございます。 どうも考え違いをしていたようです。 ネット情報を探して 「展開およびイメージングツール環境」 と言うドスプロンプトから以下のように入力すればうまく処理できるようです。 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools> C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copype amd64 C:\Win11_JA-JP\WinPE_amd64 なので以下のようにBATを作成しても普通のドスプロンプトではエラーがでます。 "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype amd C:\Win11_JA-JP\WinPE_amd64 参考画像 https://imgur.com/KVGzR7Z
- dell_OK
- ベストアンサー率13% (766/5722)
パスの一続き全体を囲めばいいと思います。 "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype amd64" C:\Win11_JA-JP\WinPE_amd64 他には、空白があるところだけ囲む方法もあります。 C:\"Program Files (x86)"\"Windows Kits"\10\"Assessment and Deployment Kit"\"Deployment Tools"\"copype amd64" 複数のパラメータとして分析されないようにするのが重要かと思います。
お礼
早速の回答ありがとうございます。 すいません。 copype.cmdが存在するフルパスが質問の場所と違っていました。 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd その為、 フルパスを正規の場所に変更して回答されたように変更したのですが 下記のようにエラーが出ます。 '"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype amd64"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 エラー修正をお願いします。
- watanabe04
- ベストアンサー率18% (295/1598)
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype amd64" C:\Win11_JA-JP\WinPE_amd64
お礼
早速の回答ありがとうございます。 すいません。 copype.cmdが存在するフルパスが質問の場所と違っていました。 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd その為、 フルパスを正規の場所に変更して回答されたように変更したのですが 下記のようにエラーが出ます。 '"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype amd64"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 エラー修正をお願いします。
お礼
早速の回答ありがとうございます。 すいません。 copype.cmdが存在するフルパスが質問の場所と違っていました。 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd その為、 フルパスを正規の場所に変更して回答されたように下記に変更したのですが 今回はエラーが出ませんでしたが、BATをコマンドプロンプトから管理者権限で実行しましたが一瞬で コマンドプロンプトが終了してしました。 (コマンドは実行されていないようです。) "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype" amd64 C:\Win11_JA-JP\WinPE_amd64 pause 原因がわからずどうすれば対処できますか ?
補足
エラーらしき原因がわかってきました。 ネット情報によると ダウンロードセンターから、必要なプログラム(含むアドオン)をすべてがインストールされた後、 スタート画面の[すべてのアプリ]の下に、[展開とイメージングツール環境]ツールを含む「Windowsキット」という名前のフォルダーが作成されるようで、 このツールを右クリックして、[管理者として実行]を選択する。 するとその後、問題のコマンド(下記)が実行できるようになるとありました。 copype amd64C:\WinPE_amd64 (copypeはDISM環境ツールから実行する必要がありますとの事) ちなみに、下記のようにBATを作成して普通のコマンドプロンプトでは上手く処理できませんでした。 (BATをコマンドプロンプトから管理者権限で実行しましたが一瞬でコマンドプロンプトが終了してしました。) cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype amd64 C:\Win11_JA-JP\WinPE_amd64 やはりBATで処理することは出来ませんでしょうか ? 代替案などありますか ?