例は、フォルダの存在を確認(ファイル名を記述するとファイル確認)
setlocal
set FNameCHK1=%current_dir%\tools
if not exist “%FNameCHK1%” goto
rem 処理を記述
rem 正常終了
exit
rem エラー終了
:non_exit
cls
echo 必要なファイルが見つからないので、実行できません
echo .
pause
例は、フォルダの存在を確認(ファイル名を記述するとファイル確認)
setlocal
set FNameCHK1=%current_dir%\tools
if not exist “%FNameCHK1%” goto
rem 処理を記述
rem 正常終了
exit
rem エラー終了
:non_exit
cls
echo 必要なファイルが見つからないので、実行できません
echo .
pause
5秒待ちの例
timeout /t 5 /nobreak > nul
Or
ping -n 5 localhost > nul rem 正確ではない+1秒が必要?
setlocal
SET STPATH=C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
copy c:\tools\test.lnk “%STPATH%”
rem 空白を含む可能性があるパスは””で囲む
rem VBAなどでは、””で囲むと中身はすべて文字列として認識されるのが普通だが、BATファイルでは、%で囲まれた部分は値が代入される
※BATファイルは特殊な例で、普通は文字連結で組み立てる必要がある
※文字連結も演算子不要で、SET 変数=並べて記述するだけで連結される
rem 文字列にしたい時は、%%を重ねて記述する %%STPATH%%”
バッチファイルを実行したフォルダを取得して、ローカル変数で絶対パス指定する例
setlocal (ローカル変数)
set current_dir=%~dp0(カレントディレクトリをcurrent_dirへセット)
set FName1=%current_dir%\parts\tools\test.exe (値を参照するには%で囲む)
copy %FName1% c:\temp /Y
※空白を含むパスの可能性がある場合は、““で囲む
copy “%FName1%” c:\temp /Y