Dosコマンドめも


備忘用。

シンボリックリンク作成

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
setlocalpushd "%~dp0"cls
@rem Get the serialnumber of your machines. (Latitude 5300 etc..)
wmic bios get serialnumberpopdpause



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"