0

簡単な質問のように思えますが、「^」はバッチで何をしますか? 次のコードのようなことをしています (ここからコピー)。ファイル someFile.txt には保存するファイルの名前が含まれており、「folder」はsomeFile.txt に記載されていないすべてのファイルを削除するディレクトリです。ステートメントからを^削除すると、このコードが機能しないのはなぜですか。さらに、次の式をラップして長い式を作成できないのはなぜですか?^|fordo()

@echo off
setlocal
set folder="c:\somePath"
set excludeFile="c:\somePath2\someFile.txt"
for /f "eol=: delims=" %%F in ('dir /b /a-d %folder% ^| findstr /vibg:%excludeFile%') do del "%folder%\%%F"
4

2 に答える 2

1

特殊文字を印刷できます。

ウィキペディアから:

パイプ ("|") 文字などの一部の文字は、コマンド ラインにとって特別な意味を持ちます。キャレット ^ 記号を使用してエスケープしない限り、ECHO コマンドを使用してテキストとして出力することはできません。

C:\> Echo foo | bar
'bar' is not recognized as an internal or external command,
operable program or batch file.

C:\> Echo foo ^| bar
foo | bar

do () についてはよくわかりませんが

ソース: http://en.wikipedia.org/wiki/Batch_file

于 2013-10-24T02:00:26.503 に答える
1

^ は次の文字をエスケープして、特別な意味をすべて取り除きます。^ は、パイプがすぐに配管されるのを防ぎます。do は次のようにラップできます。

for /f "eol=: delims=" %%F in ('dir /b /a-d %folder% ^| findstr /vibg:%excludeFile%') do (del "%folder%\%%F")
于 2013-10-24T02:01:09.887 に答える