バッチファイルを「呼ぶ」「呼ばない」にする?
2023-09-26 11:38:55
質問
bat ファイルの中から別のバッチ ファイルを呼び出したが、まだいくつかの操作が残っていた場合、最初の bat ファイルの呼び出しが完了またはエラー後に、最初に呼び出したファイルに戻ることを確認するにはどうしたらよいでしょうか。
例を挙げます。
CD:\MyFolder\MyFiles
Mybatfile.bat
Copy afile toHere
または
CD:\MyFolder\MyFiles
CALL Mybatfile.bat
COPY afile toHere
の違いは何ですか?
CALL
と
START
のいずれかを選択するか、あるいはまったく選択しないか?これは、コピーコマンドの結果を返すかどうかに影響するのでしょうか?
どのように解決するのですか?
他の方もおっしゃっているように
CALL
は、.bat 内の別の bat ファイルを呼び出して呼び出し元に戻る、通常の方法です。
しかし、CALLされたバッチファイルに致命的な構文エラーがある場合、またはCALLされたスクリプトが/BオプションなしでEXITで終了した場合、すべてのバッチファイル処理は停止します(制御は呼び出し元に戻りません)。
CMD コマンドを使用して 2 番目のスクリプトを実行する場合、制御が呼び出し元に戻ることを保証できます (もちろん、コンソール ウィンドウが開いたままである限りにおいて)。
cmd /c "calledFile.bat"
しかしこれには、呼び出されたバッチで設定された環境変数が復帰時に保存されないという制限がある。
すべてのケースでreturnを保証し、環境の変更を保存する良い解決策を私は知らないのです。
CMD を使用している間、本当に変数を保持する必要がある場合、"called" スクリプトに変数の変更を一時ファイルに書き込ませ、次に呼び出し側に一時ファイルを読ませて変数を再確立させることが可能です。
関連
-
[解決済み] macOSアップデート後、Gitが動作しない(xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] バッチファイルに引数を渡すにはどうしたらいいですか?
-
[解決済み] Windowsのバッチファイルから長いコマンドを複数行に分割する
-
[解決済み] 1つの.BATファイル内で複数の.BATファイルを実行する方法
-
[解決済み] N日以上前のファイルを削除するバッチファイル
-
[解決済み] バッチファイルでの変数の定義と使用
-
[解決済み】バッチ/cmdで "コメントアウト"(コメント追加)するには?
-
[解決済み】Windowsのバッチファイル:.batと.cmdの違いは?
-
[解決済み】BATファイル実行後、CMDを開いたままにする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] バッチ中の "カウンター"
-
[解決済み] cmdを使ったファイルの移動は? [終了しました]
-
[解決済み] cURLの出力をファイルに取り込むには?
-
[解決済み】バッチファイルをエラー発生時に終了させる方法は?
-
[解決済み】not-equal(inequality)演算子の一括処理について
-
[解決済み] DOSバッチファイルでの複数行コメント
-
[解決済み] npm install コマンドで .bat ファイルを作成する
-
[解決済み] batファイルの入力テキストをマスクすることはできますか?
-
[解決済み] Windows Bat ファイルのオプション引数の解析
-
[解決済み] cmdスクリプトで感嘆符「!」をエスケープするには?