在 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 文件名的情况下无关紧要。)
注意。假设您想要文件 not started ABC
,这不是您(尝试的)正则表达式所说的(任何文件名都不是以a
,b
或开头的东西c
)。
我的错误在哪里?
您的错误是认为该forfiles
命令将支持正则表达式。
它不是。它支持与*
和匹配的文件名?
。
在使用xcopy
命令而不是使用选项的情况下,另一种方法echo
是使用 option /exclude
。例如:
forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C xcopy @path %myDestinationFolder% /exclude:abc*"
此外,如果您使用的是 PowerShell,则另一个选项是 operator -match
。