• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:BAT処理が完結しない)

BAT処理が完結せず、最後のコマンドが処理できない理由と連続処理方法についての質問

このQ&Aのポイント
  • BAT処理が途中で止まり、最後のコマンドが処理できない理由について知りたいです。
  • 手動でコマンドを入力すると処理は完了するため、連続処理(BATのみ)できる方法についても教えてください。
  • 質問者は、BAT処理が中断される理由や連続処理の方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

> >copypeもバッチファイルということなので > の件は、参考記事の内容に含まれる事項なので正解かどうかは私には判断できません。 copype.cmd というファイルがあるのですよね。 拡張子 .cmdは、 batファイルとほぼ同等と考えて問題ないと思います。 (ERRORLEVELの返し方が違うらしいですが) > 「続行するには何かキーを押してください.......」 が出るようになったのですね。 ということは、 callなしだとtest.bat内のcopypeのあとにある pauseコマンドの実行まで行かなかったのが call copype ~ に変更したことで、 pauseの行まで行くようになったということになります。 あとは、残りの oscdimg -bootdata:2#p0,e,bC:\Win11_JA-JP\WinPE_amd64\fwfiles\etfsboot.com#pEF,e,bC:\Win11_JA-JP\WinPE_amd64\fwfiles\efisys.bin -m -o -u2 -udfver102 C:\Win11_JA-JP\Base C:\Win11_Mod_Japanese_x64.iso の処理ができてないということだと思いますが、 この行って、なんか頭に変なゴミ(というかプロンプト?)が 入っていないですか? もしかして C:\Win11_JA-JP\WinPE_amd64\fwfiles\efisys.bin -m -o -u2 -udfver102 C:\Win11_JA-JP\Base C:\Win11_Mod_Japanese_x64.iso なんじゃないですか?

NuboChan
質問者

お礼

>copype.cmd というファイルがあるのですよね。 はい、前に回答したように下記ファイルはPC内に存在します。 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd >拡張子 .cmdは、 batファイルとほぼ同等と考えて問題ないと思います。 そうなんですね。 説明を受けて参考記事が正しいと理解しました。 >なんか頭に変なゴミ(というかプロンプト?)が >入っていないですか? 毎回やってしまうミスがありそうなのでBATを改めて見直してみました。 やはり、 BATがおかしかったので以下のように修正して 「展開とイメージングツール環境」プロンプト(管理者権限付き)で実行してみました。 ) :Next2 echo Completed_Next2 if exist "C:\Win11_Mod_Japanese_x64.iso" ( del "C:\Win11_Mod_Japanese_x64.iso" goto Next3 ) else ( goto Next3 ) :Next3 echo Complete _Next3 pause ’----------------------------- 結果、今度は最後のコマンドまでエラー無く処理されました。 やはり、ご指摘のとうり私のイージーミスによりBATが不良なのが原因でした。 (フォルダーが存在するかをチェックする「if exist」で致命的なミス有り) アドバイスにより最後まで処理できるようになり感謝いたします。

その他の回答 (5)

回答No.6

-bootdata:2#p0,e,b のようなとこは文字化けでなく、これで正しいのですね。 それは失礼しました。 結果的には ・copypeにcallを付けてなくて、バッチがそこで止まってた ・if else文がきちんと閉じていなくて、後続処理ができてなかった ・管理者権限で実行中のツール内でのバッチ実行するのであれば  管理者権限にしたショートカットである必要は特になかった。   (あっても障害にはならないけど) ということのようですね、

NuboChan
質問者

補足

記載されている内容に尽きると思います。 最後までお付き合い願いありがとうございます。

回答No.5

あっと。 もう一つ問題 if exist "C:\Win11_Mod_Japanese_x64.iso" ( del "C:\Win11_Mod_Japanese_x64.iso" goto Next3 ) else ( goto Next3 の 「else (」 に対応する 「閉じる )」 が ないですね。 なので、oscdimgが実行されないのでしょう。

NuboChan
質問者

補足

>ただ、途中にでてくる >:2#p0,e,b >#pEF,e,b >って なにかが化けてる感じですね。 このスレの最初に記載したURLを参照してもらえれば 指摘されている文字が化けてはいなと思うのですが? (私には、何を表すかはブラックボックスで利用しているだけで 中身は全く理解していませんが.......) >の 「else (」 に対応する 「閉じる )」 が ないですね。 No.3に対するお礼(2021/12/17 14:40)を返す前に No4とNo5の書き込みが合ったので No4,No5を拝見する前にNo3に対するお礼を投稿していました。 後先になり失礼しました。

回答No.4

あ、違った。 oscdimg -bootdata:2#p0,e,bC:\Win11_JA-JP\WinPE_amd64\fwfiles\etfsboot.com#pEF,e,bC:\Win11_JA-JP\WinPE_amd64\fwfiles\efisys.bin -m -o -u2 -udfver102 C:\Win11_JA-JP\Base C:\Win11_Mod_Japanese_x64.iso は、このコマンドをコピー&ペーストしたとき 頭のプロンプトもコピーしてしまったのかなと 早合点していました。 oscdimg -bootdataというコマンドを実行しようとしているのであっているんですね。 ただ、途中にでてくる :2#p0,e,b #pEF,e,b って なにかが化けてる感じですね。

回答No.2

https://okwave.jp/qa/q9954338.html のほうにコメントしてしまいました。 このバッチファイルから呼んでいる copypeもバッチファイルということなので copypeの頭に callをつける必要があります でないと、子バッチファイルが終了した時点で、親のバッチファイルが終わってしまいますので。

NuboChan
質問者

お礼

引き続きの回答ありがとうございます。 アドバイスを受けて(copypeの頭に callをつける必要があります) 以下のように変更して試してみました。 call copype amd64 C:\Win11_JA-JP\WinPE_amd64 結果、添付(参考)画像のように coppeが成功後(Success)に 「続行するには何かキーを押してください.......」 と表示されたので期待を込めて適当なキーをキーインしましたが 直ぐに同じくプロンプトが点滅したままになります。 現時点でうまく処理が引き継がれない原因が分かるでしょうか ? asciizさん(回答 No.8)が、「batでフルパスを指定する場合(2)」のスレで 管理者権限のショートカットを作成を推薦されていますが test.batのショートカット(管理者権限付き)を作成して 同じく「展開とイメージングツール環境」を管理者権限で実行で 同ショートカットをキーインしてみましたが同じ状況です。 尚、 >copypeもバッチファイルということなので の件は、参考記事の内容に含まれる事項なので正解かどうかは私には判断できません。 添付(参考)画像 https://imgur.com/GxtioW1

  • kzr260v2
  • ベストアンサー率48% (863/1797)
回答No.1

失敗していると見られるコマンド単体で実行してみたり、batファイル内の@echo offをコメントアウトして、どのようなエラーが出ているかご確認されてみるのはいかがでしょうか。

NuboChan
質問者

補足

>batファイル内の@echo offをコメントアウトして、 >どのようなエラーが出ているかご確認されてみるのはいかがでしょうか。 もちろん、@echo offをコメントアウトして試してみました。 エラーは、表示されません。 うまく処理が引き継がれ状態だと思います。

関連するQ&A