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 文件名的情况下无关紧要。)

注意。假设您想要文件 not started ABC,这不是您(尝试的)正则表达式所说的(任何文件名都不是以a,b或开头的东西c)。

于 2013-01-21T14:37:22.633 回答
1

我的错误在哪里?

您的错误是认为该forfiles命令将支持正则表达式。

它不是。它支持与*和匹配的文件名?

于 2013-01-21T14:32:49.523 回答
0

在使用xcopy命令而不是使用选项的情况下,另一种方法echo是使用 option /exclude。例如:

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

此外,如果您使用的是 PowerShell,则另一个选项是 operator -match

于 2013-01-21T14:38:31.627 回答