#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]]