#author("2023-10-26T13:17:10+09:00","default:k1rou","k1rou") #author("2024-04-27T18:13:36+09:00","default:k1rou","k1rou") *MS-DOS とは [#yb10d599] -コマンドプロンプト *コマンドの仕様 [#qe740563] **コメント [#bd6a8e6b] -rem rem コメント **環境変数 [#mbe7795b] -変数に代入 set <name>=<value> -変数の値を出力 echo <name> -現在日時 echo %date% echo %date:/=% ※スラッシュを削除 echo %time% ※HH:MM:SS.00形式 set TIME=%time: =0% ※1桁の値の2桁目がスペースになっているのを0に置換 set TIME=%TIME::=% ※コロンを削除 set TIME=%TIME:.=% ※ドットを削除 echo %time:~0,5% ※HH:MMのみ出力 -文字列操作(切り出し、置換) --切り出し %TEMP:~start% %TEMP:~start,number% %TEMP:~start,-number% %TEMP:~-start% %TEMP:~-start,number% %TEMP:~-start,-number% ※startは開始位置(先頭は0。マイナス値の場合は末尾からの文字数) ※numberは文字数(省略した場合は末尾になる。マイナス値の場合は末尾の除去する文字数) --置換 %TEMP:before=after% ※特殊文字は左に^を付ける **文字列操作 [#v86d9f83] -find find <keyword> <filename> ※検出した行 find /V <keyword> <filename> ※検索文字を含まない行 find /C <keyword> <filename> ※検出した行数 -findstr findstr /C:<keyword> <filename> ※検出した行 findstr /B /C:<keyword> <filename> ※検索文字で始まる行を検出 findstr /N /C:<keyword> <filename> ※行番号を付加 findstr /R /C:<keyword> <filename> ※正規表現で検索 findstr /C:<keyword> <filename> | find /C /V "" ※検出した行数 **ファイル操作 [#q4e8201e] -type type <filename> ※指定したテキストファイルの内容を出力 -more more <filename> ※指定したテキストファイルの内容を出力(ページ毎、SPACEキーで続き) -move move <origin-file> <target-file> ※ファイルの移動・名前変更 -copy copy <origin-file> <target-file> ※ファイルの複製 **ウェイト [#d87f63eb] timeout /t <minutes> > nul ※指定した秒数待つ **バッチファイル [#f568f119] -エコーOFF @echo off ※以降のコマンドの実行を画面に出力しない -ラベル :ERROR goto :ERROR ※呼び出し元に戻らない call ERROR ※呼び出し元に戻る goto :EOF ※スクリプトの最後(終了)を表す予約 -一時停止 pause ※任意のキー入力で再開 -終了 exit ※コマンドプロンプトから実行した場合、プロンプトを閉じる exit /B ※コマンドプロンプトから実行した場合、プロンプトを開いたままにする exit /B <return-value> ※終了コードを指定する echo %ERRORLEVEL% ※終了コードを確認する *文字コードの扱い [#qe66d8a4] **コマンドプロンプトで扱う文字の文字コードの設定 [#l30533c7] -chcp chcp ※現在の設定を確認する chcp <code-page-identifier> --code-page-identifier (コードページ番号) ~https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers | code-page-identifier | 文字コード |h | 932 | SJIS | | 20127 | US-ASCII (7-bit) | | 65001 | UTF-8 | *遅延環境変数 [#cd1414d3] -変数をコードの実行時に値に置き換える(コードの読み込み時ではない) -ENABLEDELAYEXPANSION setlocal enabledelayedexpansion set HENSU=123 echo !HENSU! ※変数の値呼び出し時に変数名を%ではなく!で囲む endlocal *関連サイト [#v352213c] -Windows のコマンド - Microsoft~ https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/windows-commands -MS-DOS v1.25, v2.0, v4.0 Source Code - GitHub~ https://github.com/microsoft/MS-DOS *関連用語 [#ad306c63] -[[PowerShell]]