コマンド | 説明 |
@ | 現在行の画面への表示抑止 |
:(ラベル) | ラベル |
%0〜%9 | パラメータの参照 |
%環境変数名% | 環境変数の参照 |
%%文字 | バッチ・プログラム内の変数 |
( ) | 一連のコマンドをグループ化 |
&& | 前のコマンドが成功した場合だけ実行 |
|| | 前のコマンドが失敗した場合だけ実行 |
& | 1行中の複数のコマンドの区切り |
^ | エスケープ文字。 ……@,&,%,^などを「文字そのもの」として使用したい場合に直前につける |
; (セミコロン) | パラメータの区切り |
, (カンマ) | パラメータの区切り |
CALL | 他のバッチ・プログラムの呼び出し |
CALL :SUB | 同一バッチファイル内サブルーチン呼び出し |
ECHO | 画面へのメッセージ表示 |
ENDLOCAL | 環境変数のローカライズを終了する |
FOR..IN(..)DO | 繰り返し |
GOTO | 分岐 |
IF | 条件比較 |
ELSE | 条件が偽である場合の処理の指定 |
PAUSE | 処理の停止 |
REM | コメント |
SETLOCAL | 環境変数のローカライズ |
SHIFT | 参照パラメータの繰り上げ |
パラメータ | 説明 |
%~1 | 引用句 (") があればそれを削除する |
%~f1 | 完全修飾パス名を得る |
%~d1 | ドライブ文字を得る |
%~p1 | パス名だけを得る |
%~n1 | ファイル名だけを得る |
%~x1 | 拡張子だけを得る |
%~s1 | 短い名前を得る |
%~a1 | ファイルの属性を得る |
%~t1 | ファイルのタイムスタンプを得る |
%~z1 | ファイルサイズを得る |
C:>sc create myservice binPath= "C:\xxxxxx\myservice.exe" C:>sc delete myservice |
《構文》
nslookup -type=xxxx ドメイン名 DNSサーバ |
《使用例》
## ネームサーバを調べる ## MXレコードを調べる ## CNAMEレコードを調べる ## TXTレコードを調べる |
## ファイル一覧の取得 ## ディレクトリ一覧の取得 |
input.cmd |
@echo off |
netstat -an |
netsh diag connect iphost IPアドレス ポート番号 |
simple_replace.bat
@echo off set before="Hello World!" set after=%before:World=Test% echo %before% echo %after%
for と powershell を利用して正規表現での文字列置換を行う
test_replace.bat
@echo off set target="C:\Program Files\R\R-3.5.3\bin\Rscript.exe" set version= for /F "usebackq delims=," %%i in (`powershell -Command "& { $txt = $Args -join ''; $txt -replace '.+[^0-9]([0-9]+\.[0-9]+\.[0-9]+)[^0-9].+','$1'} %target% "`) do set version=%%i echo %target% echo %version%
set var1=ABC setlocal ENABLEDELAYEDEXPANSION |
for /F "usebackq" %a in (`type ファイル名 ^| find /C /V ""`) do echo %a
tasklist
REM 変数nowdateに日付をセットする for /F "usebackq" %t in (`echo %date:/=%`) do set nowdate=%t
REM 変数cntに実行中の notepad.exe の数をセットする for /F "usebackq" %t in (`tasklist /NH /FI "IMAGENAME eq notepad.exe" ^| find /C /V ""`) do set cnt=%t
findstr "検索文字列" ファイル名
type ファイル名
@echo off set filename=%1% set cnt=%2% if "%cnt%" == "" set cnt=10 REM 行数のカウント set linecnt=0 for /F "tokens=*" %%a in (%filename%) do set /A linecnt+=1 REM 行の表示 set /A startline=%linecnt% - %cnt% set linecnt=0 for /F "tokens=*" %%a in (%filename%) do call :disp_rec %%a goto :eof :disp_rec set /A linecnt+=1 if %linecnt% GTR %startline% echo %*% goto :eof :eof
@echo off set file=%1% set start_line=0 set pre_cnt=0 set pre_start_line=0 set linecnt=0 for /F "tokens=*" %%a in (%file%) do set /A linecnt+=1 set /A pre_cnt=%linecnt%-10 :main set linecnt=0 for /F "tokens=*" %%a in (%file%) do set /A linecnt+=1 if "%linecnt%" GTR "%pre_cnt%" set /A start_line=%pre_cnt% if "%pre_start_line%" EQU "%start_line%" sleep 1 & goto :main set cnt=0 for /F "tokens=*" %%a in (%file%) do call :disp_line %%a set pre_start_line=%start_line% set pre_cnt=%linecnt% sleep 1 goto :main :disp_line set /A cnt+=1 if %cnt% GTR %start_line% echo %*% goto :eof :eof
@echo off set file=%1% del %file% for /f "tokens=* delims=" %%i in ('@findstr /R .*') do @echo.%%i && @echo.%%i>>%file%