2

Windows 7のコマンドプロンプトで、名前が。で始まらないフォルダのすべてのファイルを一覧表示したいと思いますabc。私が試してみました:

forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C echo @file"

私のエラーはどこにありますか?

どうもありがとう。

4

3 に答える 3

3

見てforfiles /?

/M    searchmask    Searches files according to a searchmask.
                    The default searchmask is '*' .

forfilesこれは、正規表現をサポートしていないことを強く示唆しており、通常の Cmd/Windows ワイルドカードのみをサポートしています。

Windows 7 では、これは PowerShell で簡単に実現できます。

dir c:\myFolder | ?{ -not($_.Name -match '^abc') } | select Name

(これは大文字小文字を区別する正規表現の一致を実行しますが、これは Windows ファイル名の場合には問題になりません。)

注意。files not starting が必要であると仮定すると、これは (試行された) 正規表現が言うことではありません(またはABCではない何かを開始するファイル名)。abc

于 2013-01-21T14:37:22.633 に答える
1

私のエラーはどこですか?

あなたのエラーは、forfilesコマンドが正規表現をサポートすると考えています。

そうではありません。*および とのファイル名の一致をサポートします?

于 2013-01-21T14:32:49.523 に答える
0

xcopy代わりにコマンドを使用する場合の代替手段はecho、オプションを使用すること/excludeです。例えば:

forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C xcopy @path %myDestinationFolder% /exclude:abc*"

また、PowerShell を使用している場合、もう 1 つのオプションは operator-matchです。

于 2013-01-21T14:38:31.627 に答える