• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:batでフルパスを指定する場合(2))

batでフルパスを指定する場合(2)

このQ&Aのポイント
  • batでフルパスを指定する方法とは?
  • プログラムのインストール後に必要なコマンドを実行する方法
  • BATで処理する際に発生するエラーと代替案について

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

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

該当のツールを起動して そのコマンドプロンプトでcopypeを実行すると成功するのに 普通のコマンドプロンプトから実行すると >ERROR: The following processor architecture was not found: amd64. >Failed! (amd64というprocessorが見つからない) というエラーが出て停止するということは、 見かけ上は同じに見えるコマンドプロンプトでも 環境の違いがあって、指定されたprocessorのためのファイルかライブラリが 見つからないというような 現象なのだと思われます。 なので、もしかすると  ツール内のコマンドプロンプト  普通にコマンドプロンプト のそれぞれでsetコマンドを入力してみて  表示される環境変数やPathの内容に違いがあれば 自作のバッチファイルで その環境変数をセットしてからcopypeを実行するようにして そのバッチファイルを管理者権限で実行するようにすれば  もしかして可能になるかもしれません。 ただし、ツールをアップデートしたときに また環境が変わるかもしれませんので あまりトリッキーなことは しないほうがよいかもしれませんね。 管理者権限で起動したツール内のコマンドプロンプトで コマンドラインでバッチファイルを 起動することで 対応できているのなら、そのほうがシンプルなような気がします。 なお、copype自体がバッチファイルということは バッチからバッチを呼び出していることになるので ご自身で見つけられたTipsの通り copypeの頭に callを付けて呼び出さないと copypeが処理終了した時点で親のバッチファイルの処理が終わってしまいます。 なので 親のバッチファイルで、copypeの実行のあとにも処理が続くのなら copypeの頭にcallをつける必要がありますね。

NuboChan
質問者

補足

回答ありがとうございます。 アドバイスを受けて、管理者権限付きのショートカットを作成して 試してみましたが前回と同じ以下のエラーがでました。 C:\Win11_JA-JP\WinPE_amd64\*、よろしいですか (Y/N)? Y ERROR: The following processor architecture was not found: amd64. Failed! 続行するには何かキーを押してください . . . Path >ツール内のコマンドプロンプト >普通にコマンドプロンプト >のそれぞれでsetコマンドを入力してみて  >表示される環境変数やPathの内容に違いがあれば setコマンドで両者を比較すると 20箇所以上の違いが有りました。 「展開とイメージングツール環境」プロンプトでのプロンプト画面で追加されている項目がほとんどです。 つまり、 「展開とイメージングツール環境」=普通+アルファ(20箇所) ’-------------------------- 「展開とイメージングツール環境」でコマンドが作動しているので 私としては、普通のプロンプトでは無く「展開とイメージングツール環境」プロンプトで 処理する方向に現在舵を切っています。 よろしければ、「展開とイメージングツール環境」プロンプトの使用を前提で 回答頂ければ幸いです。 ’---------------------------- asciizさんの以下の注意を受けて >いったい、何をやりたくて、どこの手順で何をインストールしているのでしょうか? >※質問内容が変わってくるので、新しい質問を投稿してください 以下のスレを新規に作成しています。 以後何かアドバイスがあれば新スレの方に回答頂ければ 2つのスレを見なくても良いので話が前後しなくなり嬉しいです。 BAT処理が完結しない https://okwave.jp/qa/q9954650.html

その他の回答 (7)

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.8

>結論から言いますが、copypeコマンドは実行されていません。 私は、 「コマンドプロンプトからcopypeコマンドが実行できない」 ということと、 「copypeコマンドが実行されたが、エラーが出た」 ということは違う事象だと言っています。 確かにどちらも「正常に動いていない」ということではありますが、なぜ動かないのかはエラーメッセージを読んで対処する必要があります。 表示されたエラーは、読みましょう。 そして新たな情報が提示されました。 > 「展開とイメージングツール環境」を管理者権限で動かして > その内のコマンドとしてcopypeの実行をキーインす事で成功例を確認しています。 管理者権限が必要なのであれば、バッチをそのまま実行するのでは足りません。 まずはバッチファイルを右クリックして、ショートカットを作成してください。 そしてそのショートカットを右クリックして、「プロパティ」を開いてください。 「ショートカット」タブの下の方、[詳細設定]ボタンを押し、「管理者として実行」にチェックを入れます。 [OK]、再度[OK]でプロパティを閉じます。 このショートカットから実行しようとすると、UAEの許可ダイアログが出て、[はい]で進めれば、バッチを管理者権限で実行することができます。

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.6

>以下のようにエラーがでます。 >(コマンドプロンプト画面のコピペです。) >C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>cmd/c >"copype.cmd amd64 C:\Win11_JA-JP\WinPE_amd64" >ERROR: The following processor architecture was not found: amd64. >Failed! この表示が出るならば、きちんと copype コマンドは実行できています。 ですから、質問自体の「バッチからバッチを実行する」ということは解決できています。 しかしエラーメッセージにある通り、 >ERROR: The following processor architecture was not found: amd64. 訳) エラー: CPUタイプがAMD64ではありません。 つまり、あなたのパソコンがAMD系のCPUでないのがエラー原因であるので、そもそもインストールするものを間違えている気がします。 AMD系でなければ、Intel系のものをインストールしなければならないでしょう。 いったい、何をやりたくて、どこの手順で何をインストールしているのでしょうか? ※質問内容が変わってくるので、新しい質問を投稿してください

NuboChan
質問者

補足

>この表示が出るならば、きちんと copype コマンドは実行できています。 >ですから、質問自体の「バッチからバッチを実行する」ということは解決できています。 結論から言いますが、copypeコマンドは実行されていません。 できていればコピーされるファイルが複数個表示されて 最後に何個コピーされましたと表示されます。 「展開とイメージングツール環境」を管理者権限で動かして その内のコマンドとしてcopypeの実行をキーインす事で成功例を確認しています。 >そもそもインストールするものを間違えている気がします。 >AMD系でなければ、Intel系のものをインストールしなければならないでしょう。 私のPCのCPUはIntelで有り、AMDではありません。 copypeに続くAMD64がなぜ必要化は私には判りませんが 「展開とイメージングツール環境」を管理者権限で動かして その内のコマンドとしてcopype AMD64 の実行をキーインす事で展開は成功します。 又、 ネット情報でもコマンド「copype AMD64」は、AMD専用(Intelは他のコマンド)などの 縛りが有るような記事はありませんでした。 superside0さん(回答No.5)の指摘のように 「展開とイメージングツール環境」管理者権限で実行して プロンプト画面でバッチファイル(名)をキーインする方法で目的は達成されました。 最後までお付き合い願い感謝いたします。

回答No.5

ツールの起動自体もバッチ化するなら、 そのツールの仕様次第ですがツールが引数で処理内容をファイルで指定できる仕様になっているなら それを使うとか 入力のリダイレクトを使うとかって方法がありますが、 > 「展開とイメージングツール環境」を管理者権限で呼び出すと すぐにドスプロンプト画面になるのでBAT(複数のコマンド集)を受け渡す方法 として、ツールの起動自体は 手動でやって そのなかでDOSコマンドが使えるなら プロンプトが出てる画面で 「バッチファイル名 {エンター} 」を キー入力すれば いいんじゃないですかね。 そのバッチファイル内で copype実行にcallを付けるべきかどうかは  また別問題ですが。

NuboChan
質問者

お礼

アドバイスありがとうございます。 頭が硬いのでご指摘の方法が全くイメージ出来ませんでした。 「展開とイメージングツール環境」管理者権限で実行して プロンプト画面でバッチファイル(名)をキーインする方法で目的は達成されました。 これで目的は達成できたので解決ですが 他のアドバイスなどを考慮して解決とはしません。 何か有りましたらお願いします。

回答No.4

そもそも、 「(copypeはDISM環境ツールから実行する必要がありますとの事)」 とあるのに、 copypeを普通のコマンドプロンプトで動かしているのが問題なのでは? コマンドプロンプトと同じ画面に見えたのだとしても PATHや環境変数が普通のコマンドプロンプトとは違っているでしょうし。 なので 「展開とイメージングツール環境」を管理者権限で動かして その内のコマンドとしてcopypeの実行をキーインする という一連の作業をするのと同じ形になるバッチファイルにする必要があると 思われます。 もしくは、「展開とイメージングツール環境」を管理者権限で動かしてから その中で、用意しておいたバッチファイルをコマンドラインで実行するとか。

NuboChan
質問者

お礼

回答感謝します。 確かに[展開とイメージングツール環境]でのドスプロンプトでは 「copype amd64C:\WinPE_amd64」をコマンドとしてキーインすれば上手く処理できます。 実際のBATは上記のコマンド以外に処理したい複数のコマンドがあるので 普通のコマンドプロンプトから処理できれば手間が省けるのですが 現在上手く出来ていません。 >「展開とイメージングツール環境」を管理者権限で動かしてから >その中で、用意しておいたバッチファイルをコマンドラインで実行するとか。 具体的には、どのような方法が考えられますか? 「展開とイメージングツール環境」を管理者権限で呼び出すと すぐにドスプロンプト画面になるのでBAT(複数のコマンド集)を受け渡す方法がイメージ出来ません。

NuboChan
質問者

補足

参考になるか判りませんが、 以下の記事では、 「COPYPEですが、 これもバッチファイルなのでコマンドプロンプトから貼り付けて実行する場合は、よいのですが バッチに書く場合、call COPYPEにしないと戻ってきません。」 とあります。 https://social.technet.microsoft.com/Forums/lync/ja-JP/511dacfc-9378-48f2-b524-35fef365d275/23637382831236212424124031245212513125401247212531124641248412?forum=win10itprogeneralJP

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.3

>いずれも上手く処理できませんでした。 >何か?手順ミスや考え違いがありますか? 前の質問を見たら、copype って、.exe ではなくて .cmd なんですね? だとしたら、バッチ内からさらにバッチを実行するために、 ---- "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype.cmd" amd64 C:\Win11_JA-JP\WinPE_amd64 ---- または ---- pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype.cmd amd64 C:\Win11_JA-JP\WinPE_amd64 ---- と、拡張子まできちんと指定する必要があるかもしれません。 さらには、コマンドインタープリタで実行するということを明示するために ---- pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" cmd /c "copype.cmd amd64 C:\Win11_JA-JP\WinPE_amd64" ---- とまでやったほうがいいかもしれません。

NuboChan
質問者

お礼

ありがとうございます。 >前の質問を見たら、copype って、.exe ではなくて .cmd なんですね? Everthing(ファイル名で高速に検索できるソフト)でCopypeでヒットするのは copype.cmd C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\copype.cmd だけです。 回答No.3に記載されていた  3つの方法を以下で試してみましたが まだ上手く処理できませんでした。 ’---------------------------- 1) pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" pause cmd /c "copype.cmd amd64 C:\Win11_JA-JP\WinPE_amd64" 以下のようにエラーがでます。 (コマンドプロンプト画面のコピペです。) C:\WINDOWS\system32>pushd "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>pause 続行するには何かキーを押してください . . . C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>cmd/c "copype.cmd amd64 C:\Win11_JA-JP\WinPE_amd64" ERROR: The following processor architecture was not found: amd64. Failed! '-------------------------- 2) 以下のBATでは、 "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype.cmd" amd64 C:\Win11_JA-JP\WinPE_amd64 pause 以下のようなエラーがでます。 C:\WINDOWS\system32>"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype.cmd" amd64 C:\Win11_JA-JP\WinPE_amd64 '"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\copype.cmd"' は、内部コマンドま たは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\WINDOWS\system32>pause 続行するには何かキーを押してください . . . ’--------------------------- 3) 以下のBATでは、 pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype.cmd amd64 C:\Win11_JA-JP\WinPE_amd64 pause エラー表示は無く一瞬でコマンドプロンプト画面が終了してしまいます。

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

前の回答からの続きになりますが >'"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 は、空白なしに繋がっていないといけません。 1スペース開いて離れているから、 実行ファイル名:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" パラメータ1: copype パラメータ2: amd64 パラメータ3: C:\Win11_JA-JP\WinPE_amd64 と、勘違いされてしまったのです。 パス名部分をくくるなら、コマンド名と間を空けてはいけません。 ↓ "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools"\copype ---- そしてこちらの件 ---- >パスが、C:\WINDOWS\system32>からではうまく処理できず > C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools  >まで移動しないと処理できないようです。 こちらの方法も取れます。 カレントトドライブを保存して目的フォルダに移動するコマンド、pushdを使います。 pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype amd64 C:\Win11_JA-JP\WinPE_amd64 この2行として実行することで、カレントフォルダを C:\(中略)\Deployment Tools に移動したうえで copype コマンドを実行できます。

NuboChan
質問者

お礼

引き続きの回答感謝します。 助言をいただき、トレースのため試してみました。 ------ (1),2),3)の3タイプ ------ いずれも上手く処理できませんでした。 何か?手順ミスや考え違いがありますか? 1) "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools"\copype amd64 C:\Win11_JA-JP\WinPE_amd64 しかし、下記エラーが同じく発生します。 (コマンド及びエラー表示は、コマンドプロンプトのコピペをそのまま書き出しました。) 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"\copype' は、内部コマンドまたは 外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ’------------------------------------------- 2) 以下では、エラー表示は無く一瞬でコマンドプロンプト画面が終了してしまいます。 pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" copype amd64 C:\Win11_JA-JP\WinPE_amd64 '-------------------------------------------- 3) 以下のようにpauseコマンドを挿入してBATを以下のように書き換えて実行すると pushd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools" pause copype amd64 C:\Win11_JA-JP\WinPE_amd64 以下のようにコマンドプロンプトは表示されます。   (Pauseまでは進行している ?) C:\WINDOWS\system32>pushd "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>pause 続行するには何かキーを押してください . . . で続行のため適当なキーをクリックした時点で  一瞬でコマンドプロンプト画面が終了してしまいます。 多分、思うに 「copype amd64 C:\Win11_JA-JP\WinPE_amd64」が実行されずに終了されたと思います。

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.1

そのBATファイルの一番下に、 PAUSE を追加して一旦停止させると、 失敗している原因がわかるかも知れません。