Windows 7のコマンドプロンプトで、名前が。で始まらないフォルダのすべてのファイルを一覧表示したいと思いますabc
。私が試してみました:
forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C echo @file"
私のエラーはどこにありますか?
どうもありがとう。
Windows 7のコマンドプロンプトで、名前が。で始まらないフォルダのすべてのファイルを一覧表示したいと思いますabc
。私が試してみました:
forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C echo @file"
私のエラーはどこにありますか?
どうもありがとう。
見て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
ではない何かを開始するファイル名)。a
b
c
私のエラーはどこですか?
あなたのエラーは、forfiles
コマンドが正規表現をサポートすると考えています。
そうではありません。*
および とのファイル名の一致をサポートします?
。
xcopy
代わりにコマンドを使用する場合の代替手段はecho
、オプションを使用すること/exclude
です。例えば:
forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C xcopy @path %myDestinationFolder% /exclude:abc*"
また、PowerShell を使用している場合、もう 1 つのオプションは operator-match
です。