C:\Windows\System32\shutdown.exe /s /f /t 〇〇(〇〇に秒数を入れる。30分だったら1800)をリンク先に設定したショートカットをデスクトップに作ることで、ある時間経過後のシャットダウンは簡単に実行できます。
そのショトカを使ううちに、「〇〇の部分を標準入力で受け取り、シャットダウンまでの時間を毎回任意に設定したい」と思い始め、その実現のために今回batファイルを書いたのでここにシェアします。
外部のアプリとかあるのかもしれませんが、せっかくなので自分で作ってみたかった。
ちなみに、今回初めてbatファイルを書いた(というか概念自体初めて知った)ので、おかしなところがあるかもしれません。
その場合はコメントで教えていただけるとありがたいです。
シャットダウンタイマーをデスクトップに設置
下にbatファイルの中身を載せときます。それをメモ帳に貼り付けてデスクトップに保存してください。
保存する時の注意点が2点あります。
①〇〇.batという名前で保存する(〇〇は好きな名前で)。
②保存時の文字コードをANSIに設定する(下画像参照)。
コードを表示する(タップ orクリック)
- @echo off
- :check
- echo.
- set input=
- set /p input=何分後にシャットダウンしますか?(整数を入力)
- if “”%input%”” ==”””” (
- echo.
- echo 整数を入力してください
- goto :check
- )
- if defined input set check_input=%input:0=%
- if defined check_input set check_input=%check_input:1=%
- if defined check_input set check_input=%check_input:2=%
- if defined check_input set check_input=%check_input:3=%
- if defined check_input set check_input=%check_input:4=%
- if defined check_input set check_input=%check_input:5=%
- if defined check_input set check_input=%check_input:6=%
- if defined check_input set check_input=%check_input:7=%
- if defined check_input set check_input=%check_input:8=%
- if defined check_input set check_input=%check_input:9=%
- if defined check_input set check_input=%check_input:0=%
- if defined check_input set check_input=%check_input:1=%
- if defined check_input set check_input=%check_input:2=%
- if defined check_input set check_input=%check_input:3=%
- if defined check_input set check_input=%check_input:4=%
- if defined check_input set check_input=%check_input:5=%
- if defined check_input set check_input=%check_input:6=%
- if defined check_input set check_input=%check_input:7=%
- if defined check_input set check_input=%check_input:8=%
- if defined check_input set check_input=%check_input:9=%
- if defined check_input (
- echo.
- echo 整数のみを入力してください
- goto :check
- )
- set /a time=%input%*60
- :confirm
- echo.
- set message=
- set /p message=%input%分後にシャットダウンをします。よろしいですか?(y/n)
- if “”%message%”” ==”””” (
- echo.
- echo yかnで答えてください
- goto :confirm
- )
- if %message%==y (
- call C:\Windows\System32\shutdown.exe /s /f /t %time%
- echo 設定を完了しました。
- ) else if %message%==y (
- call C:\Windows\System32\shutdown.exe /s /f /t %time%
- echo 設定を完了しました。
- ) else if %message%==n (
- echo 設定をキャンセルしました。
- ) else if %message%==n (
- echo 設定をキャンセルしました。
- ) else (
- echo.
- echo yかnかで答えてください
- goto :confirm
- )
- pause
- exit
半角入力でも全角入力でも良いようにしたら長くなってしまいました。
うまい書き方があったら教えて下さい。
使う時はbatファイルをまず開きます。
コマンドプロンプトが出てくるのでそこで何分後にシャットダウンするかを整数で入力。確認の文が出てくるのでyを押してエンター。
設定完了の文が表示された後に任意のキーを押せばコマンドプロンプトが閉じます。
シャットダウンタイマーをキャンセルするには?
シャットダウンタイマーを設定した後にやっぱりキャンセルしたいという状況にもなりえます。
上記のbatファイルに合わせて書くこともできますが、タイマーキャンセルごときにいちいち文字を入力するのも面倒なので、キャンセル用のショートカットをデスクトップに作っておくほうが楽だと思います。それについても書いておきます。
デスクトップ上で右クリック→新規作成→ショートカット
でショートカットを作ります。そのときに下画像の画面が多分でてくるので、ここに「C:\Windows\System32\shutdown.exe /a」を入力して次へを押してください(名前はお好きに決めて完了)。
デスクトップ上に新しくショートカットができるかと思います。
タイマーをキャンセルしたいときはそのショートカットを開けばキャンセルされます。
実行しても特に何も表示されないと思いますが、きちんとキャンセルされます。
コメント