MS-DOS の変更点


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