遅刻の「言い訳」選手権

職場のコンピュータで、数日おきですが、帰宅するときに自分で組んだbatファイル
(いわゆる簡単なMS-DOS)でデータのバックアップを取っています。

バックアップ自体は1~2時間から長くても数時間で終わりますが、その晩はコンピュータは
一晩中ONのままです。 昨今、省エネがうるさくなってきて、仕方がないので、
batファイルの最後に、shutdown /s と加えましたが、シャットダウンしません。

コマンドプロンプトに手で直接にshutdown /sと入力すると、たちどころにシャットダウンするのですが、batファイルからだとダメみたいです。

ネットを調べたら、ウイルス対策ソフトが不正なプログラムに対するコンピュータのシャットダウンを
防止するために、シャットダウンできない場合もあると書いてありました。

うちはウイルスバスターを使っていますが、ウイルスバスターにその機能があるかは不明。

なんとかbatファイルからシャットダウンする方法はないでしょうか?

シャットダウン時ですから、いっそのことウイルスバスターをbatファイルから止めてもいいです。

尚、試しにウィルスバスターを止めた状態で、batファイルからのシャットダウンを試みましたが、
うまくいきませんでした。Windows Defenderとかが邪魔をしているのでしょうか?

よろしくお助けください。

A 回答 (6件)

こんばんは。



Set Path=C:\; C:\"Program Files"\FastCopy

この記述を

Set Path=%PATH%;C:\;C:\"Program Files"\FastCopy

と変更してください。

今の記述では、C:\Windows\system32 などにある外部コマンド(shutdown.exe とか taskkill.exe など)が全く動作しません。
したがってバッチ中に記載されているtaskkillコマンドも実は動いていないと思いますよ。

お試しください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/12/31 17:08

>どうもSet pathのあたりをREM文にすると、うまくいくのですが、なにがおかしいのかわかりません。


バッチファイル内でpathを変更するとそのバッチ内のコマンドは全て変更されたpath内に無ければ実行できません。
バッチから抜け出すと元のpath(起動時に設定されているpath)に戻ります。
shutdownはC:\Windows\System32に有りますのでバッチファイルの最後の行にフルパスで指定して下さい。

C:\Windows\System32\shutdown /s

他のコマンドも実行されていないものがあるかもしれませんので念のために見直して下さい。
    • good
    • 2
この回答へのお礼

ありがとうございました。

お礼日時:2010/12/31 17:09

No.1 の補足です。


どうやら「困っている」とは言っても「無反応」ということのようですので、
結論だけ書けば、バッチファイル内で使用しているコマンドに
start /wait をかけてみてください。
詳細は start /? を見てください。
アドバイスしても「無反応」なので意味が無いので、終わりとします。

この回答への補足

> shutdown /s 1行だけのbatファイルを作って実行するとshutdownするはずですので

最初に確かめたつもりになっていましたが、確かにこの場合はシャットダウンします。

batファイルの内容を以下に書きます。場所ごとにREM文にしてみたら、Set Pathのあたりが
おかしいようですが、解決策がわかりません。

> start /wait をかけてみてください。
Start /?も見ましたが、どこに入れたらいいのかがよくわかりません。

以下問題のbatファイル---------------

Set Path=C:\; C:\"Program Files"\FastCopy
REM *****************
set D=M:\Week-bkup\bkup1-th
set F=C:\My-Doc2\Bkup-Log\bkup-log.txt
REM *****************

Echo =========================== >> %F%
Echo Daily-Copy to %D% started on %date% %time:~0,8% >> %F%

mkdir %D%
Echo %date% %time% start > %D%\rev-date.txt

fastcopy.exe /cmd=sync /auto_close c:\data1 /to=%D%\data1
Echo %date% %time% \graph finished >> %D%\rev-date.txt
REM 以下、いくつかのdirectoryをfastcopyでコピー (省略)

Taskkill /IM outlook.exe
REM たまにOutlookを閉じ忘れる防止
mkdir %D%\outlook用
fastcopy.exe /cmd=sync /auto_close c:\E-mail\outlook用\受信2010-.pst /to=%D%\outlook用
Echo %date% %time% 受信2010-.pst finished >> %D%\rev-date.txt
fastcopy.exe /cmd=sync /auto_close c:\E-mail\outlook用\My-Outlook1.pst /to=%D%\outlook用
Echo %date% %time% Outlook1.pst finished >> %D%\rev-date.txt

REM 以下、fastcopyが続くが略

Echo %date% %time% All finished >> %D%\rev-date.txt
Echo Daily-Copy to %D% completed on %date% %time:~0,8% >> %F%

shutdown /s

補足日時:2010/12/17 21:17
    • good
    • 0
この回答へのお礼

「無反応」申し訳ありません。
昨日から本日夕方までネットにつなげない場所におりました。
もし、お怒りのようでしたら、お詫び申し上げます。

お礼日時:2010/12/17 21:13

>なんとかbatファイルからシャットダウンする方法はないでしょうか?


そのバッチファイルの最後に call shutdown /s と記述してみることをお勧めします。
それで駄目なら回答No.1、2の方法を参考にしてシャットダウン用バッチファイルを call で呼び出します。

この回答への補足

call shutdown/sにしましたが、うまくいきませんでした。
別のbatファイルを呼ぶことも試みましたが、うまくいきません。

エラーメッセージ
「'shutdown' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
がでました。

問題のbatファイルの内容を#4さんの補足に書きました。

どうもSet pathのあたりをREM文にすると、うまくいくのですが、なにがおかしいのか
わかりません。

shutdownのpathはどうしたらよいでしょうか?

補足日時:2010/12/17 21:25
    • good
    • 0
この回答へのお礼

ご返事が遅くなって申し訳ありません。

お礼日時:2010/12/17 21:26

まずシャットダウンを実行させるバッチファイルを別に作ります。


その際にそのバッチファイル名は「shutdown」のスペルが入らないようにしてください。

で、バックアップのバッチファイルの最後にこのシャットダウンの
バッチファイルを実行させてください。

シャットダウンのバッチファイル名を「shutdown」のスペルが含まれてしまうと
コマンドプロンプト画面で永遠にシャットダウンの命令が連続で表示されるだけで、
シャットダウンされません。
これは一番最初に検索されるパスは ・ なので
自分自身 shutdown.bat を永遠に呼び出し続けることになるからです。

この回答への補足

ご指摘ありがとうございました。
ファイル名にshutdownをいれるミスも犯しておりました。

確かに「Shutdown /s」だけの内容のbatファイルならばうまくいきました。

どうもbatファイルの他の部分が悪さをしていそうです。

問題のbatファイルを#4さんの補足に示しました。

どうもSet pathのあたりでミスをしていそうです。

Shutdownコマンドのpathはどこを選択すればいいのでしょうか?

補足日時:2010/12/17 21:29
    • good
    • 0
この回答へのお礼

ご返事が遅くなってしまい申し訳ありません。

お礼日時:2010/12/17 21:30

shutdown /s 1行だけのbatファイルを作って実行するとshutdownするはずですので、


batファイルだからshutdownしない、ということではないでしょう。
条件付きジャンプ処理などを行なっているということはありませんか。
batファイルの内容を見てみないと何とも言えないですね。
batファイルの内容をそのまま添付してみてください。
    • good
    • 0
この回答へのお礼

「無反応」申し訳ありません。
昨日から本日夕方までネットにつなげない場所におりました。
もし、お怒りのようでしたら、お詫び申し上げます。

お礼日時:2010/12/17 21:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報