コマンドを次の行に拡張するにはどうすればよいですか?
基本的にLinuxのWindows代替
ls -l \
/usr/
ここでは、バックスラッシュを使用してコマンドを次の行に拡張します
ウィンドウと同等のものは何ですか?
コマンドを次の行に拡張するにはどうすればよいですか?
基本的にLinuxのWindows代替
ls -l \
/usr/
ここでは、バックスラッシュを使用してコマンドを次の行に拡張します
ウィンドウと同等のものは何ですか?
回答:
私のキーボードのほぼすべてのキーを試した後:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
したがって、^キーのようです。
Windowsコマンドプロンプトで^
は、コマンドラインの次の文字をエスケープするために使用されます。(同様\
に文字列で使用されます。)コマンドラインでそのまま使用する必要がある文字には、先頭に^を付ける必要があります。そのため、改行で機能します。
参考として、エスケープが必要な文字(コマンド引数として指定され、引用符で囲まれていない場合)は次のとおりです。 &|()
したがって、あなたのLinuxの例に相当するのは(More?がプロンプトであることです):
C:\> dir ^
More? C:\Windows
この質問への回答を求めてここに来たが、OPが意味する方法、つまり複数行のCMDを単一の行でどのように機能させるかを正確に求めていない場合、私には一種の危険な答えがあります。
これを実際にパイピングを使用するもので使用しようとすると、findstr
非常に問題があります。同じことがelse
sの処理にも当てはまります。しかし、複数行の条件付きコマンドをバッチファイル経由ではなくCMDから直接実行したい場合は、これでうまくいくはずです。
コマンドプロンプトで直接実行するバッチに次のようなものがあるとします。
@echo off
for /r %%T IN (*.*) DO (
if /i "%%~xT"==".sln" (
echo "%%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file
echo Dumping SLN file contents
type "%%~T"
)
)
これで、行継続カラット(^
)を使用して、次のように手動で入力できますが、警告、これは面倒であり、失敗した場合は、もう一度入力する喜びを学ぶことができます。
まあ、それだけでは動作しません^
括弧の内部メカニズム脱出のおかげで肩をすくめを少なくともいないとして書かれ。実際には、次のようにカラットを2倍にする必要があります。
@echo off ^
More? for /r %T IN (*.sln) DO (^^
More? if /i "%~xT"==".sln" (^^
More? echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file^^
More? echo Dumping SLN file contents^^
More? type "%~T"))
代わりに、|
ループ/式の継続ごとに単一のパイプ()に交換することで、カラットを必要としないトラックの反対側から汚い卑劣なスクリプト作成者になることができます。
@echo off
for /r %T IN (*.sln) DO if /i "%~xT"==".sln" echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file | echo Dumping SLN file contents | type "%~T"