2013-01-21 41 views

回答

3

看着forfiles /?

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

強烈暗示forfiles不支持正則表達式,只是正常的命令/的Windows通配符。

在Windows 7這可以很容易地在PowerShell中實現:

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

(即在執行敏感正則表達式匹配,這並不在Windows的文件名的情況下,不管一個區分。)

NB。假設你想要的文件不是ABC,這不是你的(嘗試的)正則表達式所說的(任何文件名的起始值不是a,bc)。

1

我的錯誤在哪裏?

您的錯誤認爲forfiles命令將支持正則表達式。

它沒有。它支持與*?匹配的文件名。

0

另一種方法是,在使用xcopy命令而不是echo的情況下使用選項/exclude。例如:

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

而且,如果you're使用PowerShell的,另一種選擇是運營商-match