備忘用。
バッチの最後に仕込むやつ(pauseの代わり)
dosプロンプトで
timeout /nobreak 10
exit /b
DOSバッチにJScript埋め込み(Chakra)
Windowsでshebangもどき、またはバッチにスクリプトを埋め込む方法より
js.bat
dosプロンプトで
<!-- : ^
/*
@cscript /nologo /e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} "%~f0" %*
@exit /b %errorlevel%
*/
// 以下スクリプトの内容 //
"use strict"
WScript.stdout.writeline("foo");
所定ディレクトリ配下の全削除
EXEC_DELETE_ALL.bat
dosプロンプトで
@echo off
cls
SET /P ANSWER="XXXXを削除します。よろしいですか (Y/N)?"
if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={Y} (goto :yes)
if /i {%ANSWER%}=={yes} (goto :yes)
EXIT
:yes
echo 処理開始
rem バックアップ
set time2=%time: =0%
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set hour=%time2:~0,2%
set minute=%time2:~3,2%
set second=%time2:~6,2%
zip -r -q -1 XXXX_%year%%month%%day%%hour%%minute%%second%.zip \AAAA\BBB\XXXX
rem ### XXXX ###
call :procDel XXXX,YYYY
echo 処理終了...
pause
exit
:procDel
setlocal
set targetDir=%1
cd XXXX\%targetDir%
set version=%2
dir /A:D /B /S | findstr "%version%[^\\]*$" > temp.txt
for /f %%f in (temp.txt) do rmdir /S /Q "%%f"
del temp.txt
endlocal
goto :EOF
シンボリックリンク作成
dosプロンプトで
mklink /D C:\work\hoge "C:\Program Files\hoge"
SQL*PLUSでテーブル作成・データ投入・検索を実行
EXEC_SQLPLUS.bat
EXEC_SQLPLUS.bat
@echo off
setlocal
pushd "%~dp0"
cls
set CON={userId}/{pass}@{SID}
set SCHEMEID={schemeId}
echo CREATE TABLE %SCHEMEID%.emp(empno VARCHAR2(10) NOT NULL, empname VARCHAR2(50), gender_f NUMBER(1,0), constraint EMP_PK primary key(empno)); |sqlplus %CON%
echo INSERT INTO %SCHEMEID%.emp(empno, empname, gender_f) VALUES('1234567001', 'Tommy', 0); |sqlplus %CON%
echo INSERT INTO %SCHEMEID%.emp(empno, empname, gender_f) VALUES('1234567002', 'Jenifer', 1); |sqlplus %CON%
echo SELECT * FROM %SCHEMEID%.EMP; |sqlplus %CON% > SELECT_EMP_RESULT.txt
popd
pause
マシンのシリアルナンバー表示
マシンのシリアルナンバー表示.bat
マシンのシリアルナンバー表示.bat
@echo off
setlocal
pushd "%~dp0"
cls
@rem Get the serialnumber of your machines. (Latitude 5300 etc..)
wmic bios get serialnumber
popd
pause
SHA256ハッシュ値を確認(dos-batch)
検査対象ファイルと同梱される「〜.sha256」ファイルをD&Dしてください。
※検査対象ファイルと「〜.sha256」ファイルは同じパスに格納前提
sha256Checker.bat
sha256Checker.bat
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
if "%1" == "" goto PARAM_ERROR
if NOT EXIST "%1" (
goto NOT_FOUND_ERROR
)
REM 検査値の取得.
for /f "tokens=1,2" %%a in (%1) do (
set TESTHASH=%%a
set filename=%~dp1%%b
)
REM 実値の取得.
for /f "usebackq" %%A in (`CERTUTIL -hashfile !filename! SHA256 ^| FIND /V ":"`) do set REALHASH=%%A
if !TESTHASH!==%REALHASH% (
echo result: OK!
) else (
echo result: hash値が一致しません。
echo 検査値: !TESTHASH!
echo 実値 : %REALHASH%
)
pause
exit /B
:PARAM_ERROR
echo このバッチへ対象ファイルをドラッグ&ドロップしてください
pause
exit /B
:NOT_FOUND_ERROR
echo ファイル、または、フォルダが見つかりません
pause
exit /B
SHA256ハッシュ値を確認
CertUtil -hashfile <ファイル名> SHA256
フォルダ削除後にフォルダごとコピー
@echo off
rd /s /q {ファイルパス2}
rem ファイルパス2には、移動元のディレクトリ名を含める
echo d | xcopy /e {ファイルパス1} {ファイルパス2}
pause
同名のプロセスを一括強制終了する方法
taskkill /f /im <プロセスのイメージ名>
例:
taskkill /f /im devenv.exe
バッチ実行パスへ移動
cd /d %~dp0
DHCPアドレス枯渇対策
5per-minute, 1000回実行。
cmd /v:on /c "for /L %i in (1,1,1000) do @call timeout 300 /nobreak >nul & ipconfig -release >nul & timeout 2 /nobreak >nul & ipconfig -renew >nul & echo %i回目実行."
Zundoko-Kiyoshi Problem
cmd /v:on /c "for /L %i in (1,1,1000) do @call set /a a5=a4,a4=a3,a3=a2,a2=a1,a1=^%RANDOM^% % 2 >nul & set A=!a5!!a4!!a3!!a2!!a1!& if !a1!==1 (echo ズン) else (echo ドコ) & if !A!==11110 echo キ・ヨ・シ! & exit"