- ベストアンサー
batファイルでPCをシャットダウンする方法はある?
- 職場のコンピュータで、自作のbatファイルでバックアップを取っていますが、シャットダウンできません。
- ウイルス対策ソフトがシャットダウンを防止している可能性があります。
- 試しにウイルスバスターを無効にしてもシャットダウンできず、Windows Defenderが原因かもしれません。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 Set Path=C:\; C:\"Program Files"\FastCopy この記述を Set Path=%PATH%;C:\;C:\"Program Files"\FastCopy と変更してください。 今の記述では、C:\Windows\system32 などにある外部コマンド(shutdown.exe とか taskkill.exe など)が全く動作しません。 したがってバッチ中に記載されているtaskkillコマンドも実は動いていないと思いますよ。 お試しください。
その他の回答 (5)
- bunjii
- ベストアンサー率43% (3589/8249)
>どうもSet pathのあたりをREM文にすると、うまくいくのですが、なにがおかしいのかわかりません。 バッチファイル内でpathを変更するとそのバッチ内のコマンドは全て変更されたpath内に無ければ実行できません。 バッチから抜け出すと元のpath(起動時に設定されているpath)に戻ります。 shutdownはC:\Windows\System32に有りますのでバッチファイルの最後の行にフルパスで指定して下さい。 C:\Windows\System32\shutdown /s 他のコマンドも実行されていないものがあるかもしれませんので念のために見直して下さい。
お礼
ありがとうございました。
- 8ive22ty
- ベストアンサー率52% (770/1479)
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
- bunjii
- ベストアンサー率43% (3589/8249)
>なんとかbatファイルからシャットダウンする方法はないでしょうか? そのバッチファイルの最後に call shutdown /s と記述してみることをお勧めします。 それで駄目なら回答No.1、2の方法を参考にしてシャットダウン用バッチファイルを call で呼び出します。
お礼
ご返事が遅くなって申し訳ありません。
補足
call shutdown/sにしましたが、うまくいきませんでした。 別のbatファイルを呼ぶことも試みましたが、うまくいきません。 エラーメッセージ 「'shutdown' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 がでました。 問題のbatファイルの内容を#4さんの補足に書きました。 どうもSet pathのあたりをREM文にすると、うまくいくのですが、なにがおかしいのか わかりません。 shutdownのpathはどうしたらよいでしょうか?
- foitec
- ベストアンサー率43% (1080/2457)
まずシャットダウンを実行させるバッチファイルを別に作ります。 その際にそのバッチファイル名は「shutdown」のスペルが入らないようにしてください。 で、バックアップのバッチファイルの最後にこのシャットダウンの バッチファイルを実行させてください。 シャットダウンのバッチファイル名を「shutdown」のスペルが含まれてしまうと コマンドプロンプト画面で永遠にシャットダウンの命令が連続で表示されるだけで、 シャットダウンされません。 これは一番最初に検索されるパスは ・ なので 自分自身 shutdown.bat を永遠に呼び出し続けることになるからです。
お礼
ご返事が遅くなってしまい申し訳ありません。
補足
ご指摘ありがとうございました。 ファイル名にshutdownをいれるミスも犯しておりました。 確かに「Shutdown /s」だけの内容のbatファイルならばうまくいきました。 どうもbatファイルの他の部分が悪さをしていそうです。 問題のbatファイルを#4さんの補足に示しました。 どうもSet pathのあたりでミスをしていそうです。 Shutdownコマンドのpathはどこを選択すればいいのでしょうか?
- 8ive22ty
- ベストアンサー率52% (770/1479)
shutdown /s 1行だけのbatファイルを作って実行するとshutdownするはずですので、 batファイルだからshutdownしない、ということではないでしょう。 条件付きジャンプ処理などを行なっているということはありませんか。 batファイルの内容を見てみないと何とも言えないですね。 batファイルの内容をそのまま添付してみてください。
お礼
「無反応」申し訳ありません。 昨日から本日夕方までネットにつなげない場所におりました。 もし、お怒りのようでしたら、お詫び申し上げます。
お礼
ありがとうございます。