LoginSignup
0
0

More than 1 year has passed since last update.

Dosコマンドめも

Last updated at Posted at 2018-05-27

備忘用。

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
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"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0