コマンド | 説明 |
---|---|
cmd /k COMMAND | バッチファイル実行後にコマンドプロンプトを閉じない |
cd /d %~dp0 | カレントディレクトリを実行されたバッチのディレクトリにする(Shiftには注意) |
pushd %~dp0 | 現カレントディレクトリをスタックに積む。 カレントディレクトリを実行されたバッチのディレクトリにする(Shiftには注意) |
popd | スタックからカレントディレクトリをポップ |
start. | コマンドプロンプトからエクスプローラーを開く (start .)ドットありでもよい |
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Command Start-Process "実行するバッチファイルパス" -Verb Runas | パワーシェルを利用して対象バッチを管理者権限で実行 |
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Command Start-Process """%1""" -Verb Runas | パワーシェルを利用して対象バッチを管理者権限で実行 D&Dされたバッチファイルパス 編 |
set HENSU1=変数です set HENSU2=2 | 環境変数 |
set ARRAY[0]=配列0です set ARRAY[5]=配列5です | 環境変数配列 |
%0 ~ %9 | バッチファイルに渡された引数 %0 にはバッチがコールされた際のコマンド名が正確に入っている 【call xxx→ xxx】【call xxx.bat→xxx.bat】【call c:\xxx.bat→c\xxx.bat】 |
shift [/n] | nで指定した引数を忘れ、以降の引数をすらす。 List の RemoveAt() みたいな感じ |
goto :end :end | ジャンプ |
goto :eof | バッチファイルから抜けるジャンプ |
exit | 終了 |
exit /b | 終了するけどプロンプトを閉じない |
exit /b 1 | 終了(エラーコードを返す) |
errorlevel | 直前に実行されたコマンドの終了コード |
@echo off set input= :re_start set /p input="入力してください > " if "%input%"=="" ( echo 何か入力してください goto :re_start ) echo %input% | 入力待ち受け(変数に文字列を入力させる) |
@echo off set path=sammple.txt if not exist %path% ( echo ファイル、ディレクトリが存在しません。 ) else ( echo ファイル、ディレクトリが存在しています。 ) | ファイル、ディレクトリの存在確認 |
@echo off set path=aaa if not exist %path% ( echo ファイル、ディレクトリが存在しません。 ) else ( echo ファイル、ディレクトリが存在しています。 if exist %path%\ ( echo ディレクトリです ) else ( echo ファイルです ) ) | ファイル、ディレクトリの判定 存在していて パスの最後に / をつけても存在していたらフォルダ |
set /A FILE_CNT=0 FOR /r . %%I IN (*) DO ( set /A FILE_CNT=FILE_CNT+1 echo filename = %%I% ) echo ファイル %FILE_CNT% 個 | カレントディレクトリ内のファイルリスト、 およびファイル数 隠し属性のものは含まれない |
set /A DIR_CNT=0 for /d %%d in (*) do ( set /A DIR_CNT=DIR_CNT+1 echo dirname = %%d ) echo ディレクトリ %FILE_CNT% 個 | カレントディレクトリ内の ディレクトリ リスト、 および ディレクトリ 数 隠し属性のものは含まれない |
set /A FILE_CNT=0 FOR /r パス %%I IN (*) DO ( set /A FILE_CNT=FILE_CNT+1 echo filename = %%I% ) echo ファイル %FILE_CNT% 個 | 指定ディレクトリ内のファイルリスト、 およびファイル数 隠し属性のものは含まれない |
set /A DIR_CNT=0 for /d %%d in (パス\*) do ( set /A DIR_CNT=DIR_CNT+1 echo dirname = %%d ) echo ディレクトリ %FILE_CNT% 個 | カレントディレクトリ内の ディレクトリ リスト、 および ディレクトリ 数 隠し属性のものは含まれない |
set /A CNT=0 for /f "tokens=* delims=" %%i in ('dir /b/a *') do ( set /A CNT=CNT+1 echo "%%i%" ) echo 合計 %CNT% 個でした | カレントディレクトリのファイル、ディレクトリのリスト、 および数 隠し属性のものも含まれる dir の出力結果から 'dir /b/a-d *' ファイルバージョン'dir /b/ad *' ディレクトリバージョン |