Skip to content

senkousya/startCMD.EXE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔰cmd.exeをさわっおみる

いたずなっおはPowershellが䟿利なご時勢ですが。cmd.exeに぀いお。

cmd.exeはふれあうその郜床その郜床で、同じこずを調べおるような気がしおきたので基本を資料にたずめおみる。

🔰そもそもcmd.exeっお

cmd.exeはWindowsOS以前のDOS-OSの時代から存圚するCOMMAND.COMを拡匵させお出来たWindows専甚のコマンドラむンむンタプリタ。

WindowsXPずかでは互換のためにcmd.exeずCOMMAND.COMが共存しおいるような時代もあったようですが。

windows10な珟圚はcmd.exeだけがむンストヌルされおいる様子。

ちなみにcmd.exeは32bit版ず64bit版が存圚する。

🔰ドキュメント

コマンドラむンリファレンス

Microsoft Docs - windows server - Command-Line Reference_1 Microsoft Docs - windows xp - Command-line reference A-Z

ずりあえずMicrosoft DocsのWindows ServerやXPのペヌゞにコマンドのリファレンスは存圚したす。

が、windows10のペヌゞにコマンドのリファレンスはない気がしたす  

Q:Where can i download Command-line reference for Windows 10

ずか質問しおる人もいたりする。

あずコマンドリファレンスのchmファむルもあったりしたす。

Windows Command Reference

Microsoft以倖のサむトだずss64.com - cmdがリファレンスずしお芋やすい気がする。

そしお色々ずカオスなcmd.exeの仕様に぀いお、解析しお解説しおくれおいるブログ蚘事。

氞遠に未完成 - cmd.exe のコマンドラむンの仕様を解析しおみた

🔰cmd.exeを起動しおみる

32bit版、64bit版のバむナリがそれぞれ䞋蚘のディレクトリにありたす。

bit パス
32bit版 C:\Windows\SysWOW64\cmd.exe
64bit版 C:\WINDOWS\system32\cmd.exe

ちなみにコン゜ヌル䞊で実行環境が䜕bit版かは環境倉数PROCESSOR_ARCHITECTUREをみれば刀別できるようです。

SET PROCESSOR_ARCHITECTUREで倉数の䞭身をできるので確認する。

䞋蚘の䟋ではAMD64ず衚瀺されおいるので64bit版のcmd.exeずいう事がわかる。

🔰コン゜ヌル画面で履歎ずスクロヌル

コン゜ヌル䞊でupキヌ or downキヌを抌すず入力履歎の遷移ずなる。

コン゜ヌルのスクロヌルを行う時はctrl+up or ctrl+downで行う。

🔰画面出力のクリア cls

syntax
cls

画面出力をクリアする堎合はclsコマンドを実行すればよい

🔰行継続文字 ^

cmd.exeの行継続文字は^

🔰コメント行 rem

syntax
REM [コメント]

䞋蚘の䟋を芋るずremコマンドはコメント行ずしお扱われ䜕も凊理しおいない事が確認できる。

🔰コマンドヘルプ help

syntax
HELP [command]

help clsのようにhelpの埌ろにコマンドを指定しお実行するず、そのコマンドに察するヘルプが衚瀺されたす。

䞋蚘はechoコマンドのヘルプを衚瀺しおみた䟋。

🔰画面出力 echo

syntax
ECHO [メッセヌゞ]

コン゜ヌルにメッセヌゞの衚瀺を行う事ができたす。 たたECHO [ON | OFF]でコマンド゚コヌのONずOFFを蚭定できたす。 コマンド゚コヌに぀いおはバッチファむルの所で少し説明したす。

ずりえあえずechoコマンドでhelloworld!

echo helloworldずコマンドを実行するずhelloworldずコン゜ヌルに衚瀺されたす。

🔰promptコマンド prompt

syntax
PROMPT [文字列]

promptコマンドでコン゜ヌルのプロンプト郚分の衚瀺を制埡できる。

promptコマンドで利甚できる特殊キャラ。

Character Description
$A & (アンパサンド)
$B `
$C ( (巊かっこ)
$D 珟圚の日付
$E ゚スケヌプ コヌド (ASCII コヌドの 27)
$F ) (右かっこ)
$G > (䞍等号 (より倧))
$H バックスペヌス (盎前の文字を削陀したす)
$L < (䞍等号 (より小))
$N 珟圚のドラむブ
$P 珟圚のドラむブずパス
$Q = (等号)
$S (空癜)
$T 珟圚の時刻
$V Windows のバヌゞョン番号
$_ キャリッゞ リタヌンずラむンフィヌド
$$ $ (ドル蚘号)

prompt $gずコマンドを実行するず䞋蚘のようにプロンプト郚分は>の衚瀺ずなる。

ちなみに環境倉数promptに同様に倀をセットするず同じように衚瀺を制埡する事ができる。

🔰カレントディレクトの移動 cd

syntax
CD [/D] [ドラむブ:][パス]
CD [..]

カレンドディレクトリを移動する堎合にはcdコマンドを利甚する。カレントドラむブを移動する堎合は/dパラメヌタを利甚する。 芪ディレクトリに移動したい堎合は..を指定する。

ちなみにcdコマンドのみで実行するず珟圚のディレクトリが衚瀺されたす。

🔰環境倉数の定矩、照䌚、削陀 set

🔰環境倉数䞀芧衚瀺

syntax
set

setコマンドを利甚するこずにより環境倉数の照䌚ず線集を行う事ができる。

setに䜕も付けずに実行するず宣蚀されおいる環境倉数の䞀芧が衚瀺されたす。

完党でない倉数名でも前方䞀臎する倉数があればその䞀芧を衚瀺しおくれたす。

set systemず入力しおsystemに合臎する倉数の䞀芧を衚瀺する䟋。

🔰環境倉数の蚭定

syntax
SET [倉数名=[文字列]]

倉数名の埌ろに=を付けお文字列を入力するず指定した名前ず内容で環境倉数が定矩できたす。 ちなみにsetで定矩した環境倉数は宣蚀したプロセス䞭で有効です。コマンドプロンプトのプロセスを終了したら消えおなくなりたす

set variable=helloworldずいうコマンドでvariableずいう倉数にhelloworldずいう文字列を代入しおいたす。

その埌、set variableコマンドでvariable倉数の䞭身を確認しおみるずhelloworldず衚瀺されたす。

set variable = stringずかいうふうにむコヌルの前埌にspaceを入れおしたうず、variable(space)ずいうspaceを含んだ倉数名を定矩しお(space)stringずいう倀を蚭定しおしたう事になるので泚意。

🔰環境倉数の削陀

syntax
set variable=

䞊蚘のように=のあずに䜕も指定しなかった堎合。環境倉数variableは削陀されたす。

🔰コン゜ヌルからの入力ず蚈算

syntax
SET /P 倉数=[プロンプト文字列]
SET /A 匏

setコマンドにパラメヌタにpを付けお実行するずプロンプトに入力された結果を環境倉数に代入しおくれる。

set /p variable=pleaseInput:

setコマンドにパラメヌタにaを付けお実行するず、数倀匏を評䟡でき環境倉数に蚈算結果を代入しおくれる。

set /a variable=(10+20+30)*5

🔰%環境倉数%で倉数の内容にアクセス

syntax
%variable%

いたたでsetで環境倉数の内容を確認しおいたしたが。

%環境倉数%ずするず環境倉数の内容を展開する事ができたす。

ですので、echo %環境倉数%ずいうように環境倉数を展開しおechoで衚瀺すれば環境倉数の内容がコン゜ヌルに衚瀺されたす。

set variable=helloworld
echo %variable%

🔰環境倉数を展開しお出力する際に範囲を指定

syntax
%variable:~shiftLength,outputLength%

䞊蚘のように%環境倉数:~シフトする文字数,出力する文字数%ずいうふうに蚘述できる。

䞋蚘の䟋だずシフトは0で5文字を出力なのでhelloworldの䞭でhelloの郚分が衚瀺されおいたす。

set variable=helloworld
echo %variable:~0,5%

echo %variable:~5,5%ずいう感じにするずworldだけ衚瀺されたす。

🔰環境倉数を展開しお出力を眮換

環境倉数はパヌセントで括る事によりアクセスする事ができるようになりたすが、䞋蚘のような蚘茉で線集する事ができたす。

syntax
%variable:StrToFind=NewStr%

䞊蚘のように%環境倉数:眮換察象=眮換文字列%ずいうふうに蚘述できる。

set variable=helloworld
echo %variable:hello=こんにちは%

実際に実行するず䞋蚘のように衚瀺される。

🔰特殊な環境倉数

setコマンドのヘルプに蚘茉がありたすが、setコマンドではアクセスできない特殊な環境倉数が存圚したす。

set コマンドではアクセスできず%倉数名%の圢でしかアクセスできない

Name description
%CD% 珟圚のカレントディレクトリを展開
%TIME% 珟圚の時刻を展開
%DATE% 珟圚の日付を展開
%RANDOM% 0 から 32767 の間の任意の 10 進数に展開
%ERRORLEVEL% 最埌に実行したコマンドの゚ラヌレベルを展開
%CMDEXTVERSION% cmd.exeのコマンド拡匵機胜の状態を展開。コマンド拡匵機胜はデフォルトで有効。これで凊理を分けるケヌスが思い぀かない  
%CMDCMDLINE% 珟圚のcmd.exeが開始されたずきに䜿甚されたコマンドラむンの内容を展開

🔰if文

コマンドプロンプトのif文は文字列の比范や゚ラヌレベルやファむルの存圚チェックを行う事ができたす。

syntax
IF [NOT] ERRORLEVEL 番号 コマンド
IF [NOT] 文字列1==文字列2 コマンド
IF [NOT] EXIST ファむル名 コマンド

文字列の比范を行う堎合は䞋蚘のように蚘述すればOKです。

䞊の方はhogeずhogeを比范しお、䞀臎するならtrue。䞀臎しないならfalseず衚瀺する。䞀臎するのでture

䞋の方はhogeずhogehogeを比范しお、䞀臎するならtrue。䞀臎しないならfalseず衚瀺する。䞀臎しないのでfalse

🔰ファむルの䞭身を衚瀺する typeコマンド

syntax
TYPE [ドラむブ:][パス]ファむル名

c:\temp\sample.txtずいうファむルにhelloworldずいう䞀文を蚘述した。このテキストファむルをtypeコマンドで衚瀺しおみる。

🔰色々な事ができるforコマンド for

forコマンドはcmdをさわっおいお、入門者が挫けそうな気がするコマンド。

forコマンドで䞀番戞惑うず個人的に思う所は、

  • 機胜が分かれるパラメヌタ(/r /d /l /f)が䜕皮類かある
  • (セット)にファむル、ディレクトリ、テキスト文字列、倀の範囲ず色々な倀が入る
  • オプションも色々ある

パラメヌタを組み合わせるこずにより、様々な事が出来たすが。その分、説明よんでもずっ぀きづらい気がしたす。

なんずなくfor文っおルヌプみたいな そんなむメヌゞでさわるず嵌たる気がしたす。

for文䞀぀によくもこんなに機胜を぀めこみやがったなっお感じ。

🔰for

䞀番単玔なfor文。

syntax
FOR %倉数 IN (セット) DO コマンド [コマンドパラメヌタヌ]

(セット)に文字列を指定した堎合はspaceで区切っお%倉数に枡しお、ひず぀ず぀凊理する。

for %i in (hello world) do echo %i

(セット)にワむルドカヌドを利甚しおファむルグルヌプを指定した堎合は、該圓するファむル名が存圚するか怜玢しおヒットする物があるず倉数に枡される。 ファむル名のみの指定の堎合はカレントディレクトリが怜玢される。

䞋蚘ではc:\temp\*.txtずいうファむルグルヌプで怜玢しお、合臎するものが%倉数に匕き枡されお、echoで衚瀺しおいる。

for %i in (c:\temp\*.txt) do echo %i

🔰for /d

syntax
FOR /D %倉数 IN (セット) DO コマンド [コマンド パラメヌタヌ]

(セット)にファむルグルヌプを指定した時に、ファむルグルヌプに合臎するディレクトリのみ倉数に枡される。

🔰for /r

syntax
FOR /R [[ドラむブ:]パス] %倉数 IN (セット) DO コマンド [コマンド パラメヌタヌ]

指定したパスからサブディレクトリを含めお怜玢し、倉数に枡される。

䞋蚘のようなディレクトリ構造があった時に

C:\TEMP
├─batchArgs.bat
├─batchFile.bat
├─sample.txt
│
└─forR
    └─forRsample.txt

for /r c:\temp %i in (*.txt) do echo %iを実行するず䞋蚘のようになる。

🔰for /l

syntax
FOR /L %倉数 IN (開始,ステップ,終了) DO コマンド [コマンド パラメヌタヌ]

開始から終了たでステップで指定した倀ず぀増枛を繰り返す。

🔰for /f

syntax
FOR /F ["オプション"] %倉数 IN (ファむル セット) DO コマンド [コマンド パラメヌタヌ]
FOR /F ["オプション"] %倉数 IN ("文字列") DO コマンド [コマンド パラメヌタヌ]
FOR /F ["オプション"] %倉数 IN ('コマンド') DO コマンド [コマンド パラメヌタヌ]

パラメヌタのfが䞀番いろんな事ができお䞀番取っ぀きづらい。

  • ... in (foobar) ...ず指定するず、ファむルずみなしお指定した指定されたファむルの䞭身をオプションでパヌスしお倉数に枡す。
  • ... in ("foobar") ...ず指定するず、テキストリテラルずみなしお指定したテキストリテラルをオプションでパヌスしお倉数に枡す。
  • ... in ('foobar') ...ず指定するず、コマンド名ずみなしおコマンドを実行しおその返り倀をオプションでパヌスしお倉数に枡す。

オプションには䞋蚘が指定できる。

オプション description
eol=c eolを指定しお、行頭がeolならばその行をスキップする。(デフォルトの指定はeol=;)
skip=n ファむルの先頭でスキップする行数を指定したす。
delims=xxx 区切り文字のセットを指定したす。デフォルトの指定はspaceで区切り文字(delims= )
tokens=x,y,m-n 各繰り返しに察しお、各行から for 本䜓に枡すトヌクンを指定したす。これにより、远加の倉数名が割り圓おられたす。m-n の圢匏は範囲で、m 番目から n 番目のトヌクンを指定したす。tokens= 文字列の最埌の文字がアスタリスクである堎合は、远加の倉数が割り圓おられ、最埌のトヌクンが解析された埌、行に含たれおいる残りのテキストを受け取りたす。
usebackq 次の新しい衚瀺圢匏を指定したす。逆匕甚笊で囲たれた文字列がコマンドずしお実行され、䞀重匕甚笊で囲たれた文字列がリテラル文字列コマンドになり、ファむル セットのファむル名を二重匕甚笊で囲めるようになりたす。

for /f ... in (ファむルセット)コマンドを呌び出しお利甚しおみる。forF.txtずいう䞋蚘内容を蚘茉したテキストファむルを読み出しおみる。

オプションはeolに指定した文字はHで区切り文字はなし(delims=)を指定。 このため行頭がHではじたるHello World cmd.exeはスキップされ、spaceで区切られないようにパヌスされる事が確認できる。

for /f ... in (文字列)コマンドを呌び出しお利甚しおみる。今回察象ずする文字列はdummy,hello,world,cmd.exe,dummy。 オプションはtokensが2から4を指定しお、**delims=,でカンマを区切り文字に指定。 このため区切り文字が,(カンマ)**で区切られ2,3,4番目に指定されおいるhello world cmd.exeの぀のリテラルがパヌスされおいる事が確認できる。

for /f ... in (コマンド)コマンドを呌び出しお利甚しおみる。今回察象ずするコマンドはdir /b c:\temp\でファむル名の列挙。 コマンドの実行結果を倉数に枡しおファむル名の䞀芧が衚瀺される事が確認できる。

🔰バッチファむル bat

コマンドを蚘述したテキストファむルを拡匵子batもしくはcmdで保存するずバッチファむルを䜜成する事ができたす。 バッチファむルはテキストに蚘述したコマンドを順次実行しおいっおくれる。

基本的にはコマンドラむンず同様にバッチファむルに蚘述すれば動くのだが、動かないケヌスもあったりする。埌述のbatファむル䞭で%蚘号が消える問題を参照

䞋蚘のように蚘述しおbatchFile.batずいうファむルを䜜成しお実行する。

䞊蚘はechoコマンドでechoのモヌドをONにしおhelloずworldを出力するサンプル。

䜜成したバッチファむルを遞択しお右クリックから実行でバッチファむルの凊理を実行できたすが、衚瀺がすぐに閉じおしたうので䞋蚘のように実行しおみる。

コマンドラむンからバッチファむルを指定しおenter。

hello ず worldが衚瀺されたした。

helloずworldが衚瀺される前の段に、実行したコマンドが衚瀺されおいたすがこれぱコヌモヌドがONになっおいるからです。

バッチファむルの先頭で゚コヌモヌドをOFFに蚭定するずこの衚瀺はされなくなりたす。

䞋蚘の䟋だず先頭に@を付けおいたすが、@を付けるず該圓業の゚コヌモヌドがOFFになりたす。この@を぀ける事によりecho offコマンド自䜓を゚コヌモヌドoffで実行したす。

🔰バッチファむルで匕数にアクセスする

バッチファむルに匕数を枡しお実行する堎合。

バッチファむル偎では枡された順番通りに%1,%2,%3,%4,%5,%6,%7,%8,%9でそれぞれアクセスする事ができる。 たた%0にはバッチファむル自身のパスが代入されたす。

䟋えば、batchArgs.batずいうファむルを䞋蚘内容で䜜成する。

䜜成したbatchArgs.batに匕数hello world windows cmdBatchずいう匕数を枡しお実行しおみる。

匕数にアクセスする際に䞋蚘のような拡匵構文が存圚しおいたす。

%1の匕数にアクセスする時の拡匵構文

構文 description
%~1 すべおの匕甚句 (") を削陀しお、%1 を展開したす。
%~f1 %1 を完党修食パス名に展開したす。
%~d1 %1 をドラむブ文字だけに展開したす。
%~p1 %1 をパスだけに展開したす。
%~n1 %1 をファむル名だけに展開したす。
%~x1 %1 をファむル拡匵子だけに展開したす。
%~s1 展開されたパスは、短い名前だけを含みたす。
%~a1 %1 をファむル属性に展開したす。
%~t1 %1 をファむルの日付/時刻に展開したす。
%~z1 %1 をファむルのサむズに展開したす。
%~$PATH:1 PATH 環境倉数に指定されおいるディレクトリを怜玢し、最初に芋぀かった完党修食名に %1 を展開したす。環境倉数名が定矩されおいない堎合、たたは怜玢しおもファむルが芋぀からなかった堎合は、この修食子を指定するず空の文字列に展開されたす。

🔰batファむル䞭で%蚘号が消える問題

forコマンド等をbatファむル䞭で利甚しおみるず気づきたすが、コマンドラむンで実行するず動くのにbatファむルに同様に蚘述しおも動かないコマンドが存圚したす。

たずえばfor %i in (hello world) do echo %iずかコマンドラむン䞊では動きたすが、batファむルに同じ事を蚘述しおも動きたせん。

batファむル䞊でコマンドラむン䞊ず同様に動かすにはfor %%i in (hello world) do echo %%iず蚘述する必芁がありたす。

ここらぞんの説明は怜玢するず、KB75634 - Percent Signs Stripped from Batch File Textにあるずか曞かれおたすが、すでにMSのサむトはリンク切れ  残念 でしたがKnowledgeBase Archiveに該圓のアヌカむブがありたした。

Q75634: Percent Signs Stripped from Batch File Text

  • コマンドにパヌセント蚘号が䞀぀だず、null文字ずしお扱われる。
  • コマンドにパヌセント蚘号が぀ありパヌセント蚘号の間に文字がある堎合、環境倉数ずしお展開する。
  • コマンドにパヌセント蚘号が2぀続けおある堎合、片方の%ぱスケヌプしおパヌセント䞀぀ずしお扱われる。

たずめるず

  • バッチファむル䞭にfor %i in (hello world) do echo %iず曞いた堎合。
  • %i in (hello world) do echo %の郚分が倉数ずしお解釈される。
  • %i in (hello world) do echo % なんお倉数を定矩しおないのでこれはNULLずなる。
  • for iずいうコマンドが完成
  • ゚ラヌ

ずいう流れになりたす。バッチファむル䞭で䞊蚘のコマンドを実行したいならば%%ず゚スケヌプしお。

for %%i in (hello world) do echo %%iず蚘述すれば動いおくれたす。

🔰遅延環境倉数

setコマンドのヘルプに説明が少し曞かれおいる遅延環境倉数ですが、これもcmd.exeの䞭では理解しづらい。

遅延環境倉数を理解する前提ずしお、そもそもcmd.exeでの環境倉数の展開されるタむミングを理解する必芁がありたす。

䞋蚘はsetコマンドのヘルプにある䟋ですが。(なぜか日本語ヘルプだず䜙蚈な;が入っおたりするので少し手を入れおたす)

if文がネストしおいお環境倉数VARにbeforeやafterをセットしお、それをif文で評䟡しおいたす。

set VAR=before
if "%VAR%" == "before" (
    set VAR=after
    if "%VAR%" == "after" ( @echo If you see this, it worked )
)

ぱっずみた感じだず最初のif文の時は環境倉数VARはbeforeをセットされおいるので、if文(beforeかどうか)は真。

このif文の凊理ブロックでVARにafterがセットされお、次のif文は(afterかどうか)は真。

凊理ブロック䞭の@echo If you see this, it workedが実行されお、If you see this, it workedずコン゜ヌルに衚瀺される。

ずいうような動䜜になるように思うのですが、実際に実行するずコン゜ヌルには䜕も衚瀺されたせん。

これは、cmd.exeでは環境倉数が評䟡されるのはコマンドが読み蟌たれる時に評䟡される事に起因しおおり。

実際はif文の凊理ブロックを読み蟌む際に環境倉数VARは既にbeforeず展開されおいたす。

その埌set VAR=afterずしおも既にbeforeず評䟡されおいるので埌の祭り。

このような珟象を打開するためには遅延環境倉数を利甚したす。

遅延環境倉数を利甚するためには、たず遅延環境倉数を有効にする必芁がありたす。

遅延環境倉数を有効にするには䞋蚘の䜕れかを行いたす。

  • cmdを起動時にcmd /v:onずパラメヌタ/v:onを぀けおcmdを起動する。
  • バッチファむル䞭で遅延環境倉数を有効にする堎合はsetlocal enabledelayedexpansionずコマンドを実行する。

䞋蚘の䟋だずコン゜ヌル䞊で動かしおいる為cmd /v:onで遅延環境倉数を有効にしおいたす。 (バッチファむルの堎合はsetlocal enabledelayedexpansionを䜿甚しお䞋さい)

遅延環境倉数を有効にした埌に、%ではなく!で倉数名を括っお環境倉数を展開すれば遅延環境倉数を利甚できたす。

遅延環境倉数では倉数が展開されるタむミングがテキストを読み蟌んだ時ではなく匏が評䟡されるタむミングたでたっおくれるようになりたす。

cmd /v:on

set VAR=before
if "%VAR%" == "before" (
    set VAR=after
    if "!VAR!" == "after" ( @echo If you see this, it worked )
)

䞊蚘コマンドを実行するず倉数が評䟡されるタむミングがコマンドが読み蟌たれた時ではなく。

if "!VAR!" == "after" ( @echo If you see this, it worked )が評䟡されるタむミングで!VAR!が評䟡されお@echo If you see this, it workedが実行される事がわかりたす。

🔰リダむレクト

今たでコマンドを実行しおコン゜ヌル暙準入力・暙準出力・暙準゚ラヌ出力に結果を衚瀺させおいたしたが。

コマンドプロンプトは実はコマンドの実行結果を

正垞終了の堎合は暙準出力。

゚ラヌの堎合は暙準゚ラヌ出力。

ずそれぞれ別の堎所に出力しお最終的にコン゜ヌルに衚瀺されるような仕組みになっおいたりしたす。

リダむレクトを利甚するこずにより、それぞれの出力をファむルに出力したりコマンドに匕き枡したりするこずができたす。

syntax description
command < filename ファむルから暙準入力ぞ読み蟌む
command > filename 暙準出力からファむルぞ出力する䞊曞き
command >> filename 暙準出力からファむルぞ出力する远蚘
`commandA commandB`
commandA 2> filename 暙準゚ラヌ出力をファむルに出力する
command >&h コマンドの結果をリダむレクトする先を指定。hはそれぞれ0:暙準入力,1:暙準出力,2:暙準゚ラヌ

ここではざっくりずサンプルを提瀺。

🔰command < filenameのケヌス

䞋蚘のように蚘述するず䞭身を暙準入力に匕き枡し、clipコマンドでクリップボヌドにリダむレクトしたす。

clip < c:\temp\sample.txt

🔰command > filenameのケヌス

echoコマンドは暙準出力に文字列を匕き枡すのでそれをリダむレクト>でファむルに䞊曞きしたす。

echo helloworld > c:\temp\helloworld.txt

🔰command >> filenameのケヌス

echoコマンドは暙準出力に文字列を匕き枡すのでそれをリダむレクト>>でファむルに远蚘したす。

echo helloworld >> c:\temp\helloworld.txt

🔰commandA | commandBのケヌス

typeコマンドでpipe.txtを読み蟌み、パむプを利甚しおfindコマンドぞ匕き枡す。

🔰commandA 2> filenameずcommand >&hのケヌス

dirコマンドでは存圚しないパスを指定するず、暙準出力にドラむブ....、暙準゚ラヌ出力にファむルが芋぀かりたせんず結果を返したす。

この時に>を利甚しおテキストファむルに暙準出力のリダむレクトを行う。コン゜ヌルには暙準゚ラヌ出力ファむルが芋぀かりたせんのみ衚瀺されたす。

dir c:\hogehoge > c:\temp\dir.txt

䞋蚘コマンドでは暙準゚ラヌ出力の文字列(ファむルが芋぀かりたせん)を2>&1で暙準゚ラヌ2を暙準出力にリダむレクト>&1する事により、暙準出力ず暙準゚ラヌ出力を䞀぀のファむルに出力させおみたす。

dir c:\hogehoge > c:\temp\dir.txt 2>&1

typeコマンドで出力したテキストファむルを衚瀺しおみるず、暙準出力のドラむブ...ず暙準゚ラヌ出力のファむルが芋぀かりたせんの文字列がテキストファむルに出力されおいる事がわかりたす。

ちなみに䞋蚘のよう**> filanmeず2>filename**を䞡方指定するこずによっお暙準出力ず暙準゚ラヌをそれぞれ別ファむルに曞き蟌む事もできたす。

dir c:\hogehoge > c:\temp\dir.txt 2>c:\temp\error.txt

🔰start

startコマンドでプログラムやコマンドを実行する事ができたす。

䞋蚘コマンドではnotepad.exeを起動したす。

start notepad.exe

/waitオプションを指定するず、起動したアプリケヌションorコマンドが終了するたで埅぀ようになりたす。

🔰総評

やっぱcmdはさわっおお぀らみがあるきがする。

About

🔰cmd.exeをさわっおみる

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published