
こんにちは
教えてほしいことがあります。
batファイルで他のbatファイルを実行するためにcallで呼び出すと、処理がまた戻ってくる事を知り、
以下のようにやってみたのですが、戻ってきている様子がありません。
どこが間違っているのか教えていただければと思います。
以下file-backup.bat
echo 処理開始 >> %LOG%
date /t >> %LOG%
time /t >> %LOG%
C:\****\Backup\FastCopy198\fastcopy.exe /cmd=force_copy /auto_close /open_window /error_stop=TRUE /log /from_date="-2D" "D:\file2" "/to=\\********\file2"
@echo off
call "Z:\file-backup2.bat"
echo 処理終了 >> %LOG% ←---これ以下がログファイルに表示されない
time /t >> %LOG%
echo. >> %LOG%
ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。
環境はwinserver2008です。
ご教授お願いします。
No.5ベストアンサー
- 回答日時:
>どこが間違っているのか教えていただければと思います。
--> call で戻っている可能性があるのに断定している処。
> ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。
--> それは考えがおかしい。そう思うなら
echo 処理終了
とでも変えればいいです。表示されたら戻っている訳ですから。
そもそも %LOG% には絶対パスでファイル名をセットしていますか?
多分、カレントが変わってしまっていると予想します。
No.6
- 回答日時:
CALLについての推察は、他の方の指摘であたっているのだろう。
私は、他のコマンドの呼び出しについて。
私もCALLを最初に思いつきましたが(15年前)、実は
START
コマンドの方が向いているし、32bit Winアプリにも合うことがわかりそれを多用しています。
逆にBATファイルや、DOSコマンドなど意外な機能もあったので、今はStartで呼び出しています。
利点
1.
擬似的なバックグランド処理ができる。MS-DOSや以前のDOS(IBM-DOS)の6.0ぐらいまではUNIX系のシェルのバックグランド処理指定ができませんでした。UNIX系だとコマンドの直後に”&”を付けるだけでバックグランドとなり、コマンドプロンプトなのに、並列処理ができました。しかも優先順位がつけられます。
これと同じごとができます
start /b
2.
待ち状態が指定可能。
並列処理したりWin32アプリだと、実行と共に処理が次の行に移るために、結果を待つ場合、不都合が生じます。その時
start /wait
でいいわけです
他の処理は
start /?
で見てください。そして、試してみてください。
今回の場合も処理が終了してから実行するなら、
start /wait **.bat
ちなみにコマンドプロンプトでは、Win32アプリは処理を待たないのをしっていますか?
start /b /wait notepad & echo back
start /b notepad & echo back
この違いわかりますか
さらに他の方も指摘していますが・
>ログに「処理終了」が入ってきませんので、callで戻ってきていないと
これは、大いに間違えています。何が間違っているのか、気がつかないと、今回の問題は解決しません。まあ、解決したとしても、たぶん次回も同じまちがいをしてつくってしまって、手に負えなくなり、他人にきくことになるのでしょう。
皆様からのアドバイスありがとうございました。
コマンドとカレントディレクトリについてまだまだ知識が浅かったと反省しております。
無事処理ができました。
ありがとうございました。
No.4
- 回答日時:
No.2の続きです。
file-backup2.batがあやしいですね。
file-backup2.batについて次のことはありませんか。
・正常に終了していない。
・他のバッチファイルをcall無しで実行していてそこで処理が終了してしまっている。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Windowsのバッチファイルでcallコマンド時にログを残す方法について
その他(プログラミング・Web制作)
-
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
複数のbatファイルを自動実行したい
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトで外のexeやbat を実行した後、処理の終了を待たずに次に進みたい
その他(プログラミング・Web制作)
-
5
del で確認なしで削除した
Windows Me・NT・2000
-
6
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
7
batファイルの強制終了を回避したい
Android
-
8
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
9
バッチファイル内の各コマンドが順番に実行される条件
その他(OS)
-
10
バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。
その他(コンピューター・テクノロジー)
-
11
コマンドプロンプトが実行中か、終了してるかってどこで見たら良いんでしょうか? 調べたらタスクマネージ
ノートパソコン
-
12
runas実行した時にきかれるパスワードを手入力以外で読み込ませたい
その他(プログラミング・Web制作)
-
13
コマンドプロンプトでのエスケープ文字
Windows 10
-
14
txtファイルから特定の文字列が書かれた行だけを取得や削除するソフト
フリーソフト
-
15
バッチファイルを実行後、終了のお知らせ。
iOS
-
16
DOSコマンドでファイルをコピーできない。
その他(パソコン・スマホ・電化製品)
-
17
xcopyで特定のファイルのみをコピーする方法
Windows 10
-
18
バッチでCSVを処理する時、空の項目があった場合
その他(プログラミング・Web制作)
-
19
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
20
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10のタスクスケジューラ...
-
リモートデスクトップの取り合...
-
バッチファイルを常に管理者権...
-
コマンドの結果を変数に入れたい
-
DHCP設定バッチnetshコマンドに...
-
oracleのimp-00002エラーについて
-
quoteコマンドとは
-
バッチファイルで環境変数が設...
-
バッチでEnterを認識させ...
-
DOSコマンドのforで空白行をス...
-
バッチプログラムについて(編...
-
回線速度をバッチファイルでフ...
-
タスクスケジューラでバッチを...
-
Googleアカウントが削除されて...
-
拡張子はなぜ、大文字と小文字...
-
起動ドライブ"C"直下に現れた"O...
-
XCOPYでネットワーク越しにコピ...
-
ひとつのファイルを一括で複数...
-
フォルダの中に1個しかファイ...
-
ファイルの開き方(拡張子なし)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10のタスクスケジューラ...
-
oracleのimp-00002エラーについて
-
バッチファイルを実行後、終了...
-
コマンドの結果を変数に入れたい
-
DHCP設定バッチnetshコマンドに...
-
リモートデスクトップの取り合...
-
バッチでEnterを認識させ...
-
batファイルを実行してコマンド...
-
DOSコマンドのforで空白行をス...
-
バッチ実行を意図的に失敗させ...
-
batファイルで、call使っても戻...
-
バッチファイルでPC情報を取得する
-
バッチファイルを常に管理者権...
-
バッチ実行時にバッチのファイ...
-
コマンドプロンプトで最新のフ...
-
バッチプログラムについて(編...
-
コマンドプロンプトで別ユーザ...
-
順番にPINGを飛ばすバッチ
-
実行結果を戻り値で取得したい
-
WinSCPがタスクスケジューラで...
おすすめ情報