⌨️

コマンドプロンプト・バッチファイルでよく使うコマンド集

3 min read

コマンドプロンプトの簡単な起動方法

  • カレントディレクトリがユーザーフォルダになる
    • [win] + [R] -> cmd を入力 -> [Enter]
  • カレントディレクトリが今開いているフォルダになる
    • エクスプローラ上で [Shift] + 右クリック → 「コマンドウィンドウをここで開く」
    • エクスプローラのパスを入力する部分でcmdを入力 → [Enter]

テンプレート

@echo off

rem カレントディレクトリへ移動
cd &~dp0

rem 処理を書く

rem pause
exit /b 0

if文

set /P num="数値を入力して: "
if "%num%" == "" (
	echo numは未入力です
) else if %num% == 1 (
	echo numは1です

	rem if文のカッコ内でさらにカッコを使ってしまうと、この閉じカッコでif文が終了してしまうため使わないこと
	rem echo numは1です(%num%)
) else (
	echo %num%
)

入力によって分岐

:input_flg_start
set /P flg="進めますか?(y/n):"
if "%flg%"=="" (goto :input_flg_start)

rem y以外なら終了
if not "%flg%"=="y" (
	echo 終了
	pause
	exit /b 0
)

rem 無限ループするときは値を削除
set flg=

終了コードによって分岐する

1 <= errorlevel を判定する

if errorlevel 1 (
	echo xxに失敗しました
	pause
	exit
)

rem 以降は正常処理

0 == errorlevel を判定する

if %errorlevel% == 0 (
	rem 正常処理
)

ファイル操作

ファイルをコピーする

rem 上書き確認をしない場合
copy /y <コピー元のパス> <コピー先のパス>

ファイルを削除

del <削除するパス>

ファイルの存在を確認してからエクセルファイルを開く

フォルダ名でもOK

set FILE_PASS=<ファイルへのパス>

rem ファイルの存在確認
IF not EXIST %FILE_PASS% (
	echo ファイルがありません
	pause
	exit
)

rem ファイルがあるなら開く
start %FILE_PASS%

日付から値を取得

バッチ実行日が 2020/05/10 のとき "20200510" を取得する

echo %date%
rem => 2020/05/10

echo %date:~0,4%
rem => 2020

echo %date:~5,2%
rem => 05

echo %date:~8,2%
rem => 2020

echo %date:~0,4%%date:~5,2%%date:~8,2%
rem => 20200510

指定時刻前のとき実行

rem 9時以降か
if 9 lss %TIME:~0,2% (goto AFTER_TIME)

rem 9時前のとき実行

exit
:AFTER_TIME
rem 9時以降のとき実行

exit

エクスプローラーを開く

explorer <フォルダへのパス>

exeファイルの実行

rem exeを実行するとき終了まで待たない
start <exeへのパス>

rem 実行中のexeを強制終了
rem 名前はタスクマネージャーで分かる
taskkill /im <実行中のexe名>

シャットダウンする

rem 60秒後にシャットダウン
shutdown /t 60

rem 予約したシャットダウンを取り消し
shutdown /a

実行をn秒待つ

rem 5分待つ
timeout /t 300

rem Ctrl + C以外で進まない
timeout /t 300 /nobreak

クリップボードへ文字列を送信する

set str=aaaa

rem 改行つき
echo %str%|clip

rem 改行なし
set /p x=%str%<nul|clip

カレントディレクトリのパスを取得する

%~dp0とは異なり最後に \(円マーク)はつかない

C:\Users\username>echo %cd%
C:\Users\username

C:\Users\username>

指定したIPアドレスに接続できるか確認する

pingコマンドを使う

ping <IPアドレス>
ping <ホスト名>

-n オプションで問い合わせる回数を指定(デフォルトは4回)

ping -n 1 <IPアドレス>
if errorlevel 1 (
	echo <IPアドレスに接続できません>
)

-t オプションで無限に問い合わせる

参考

Discussion

ログインするとコメントできます