微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows脚本:列出不匹配模式的文件

在Windows 7命令提示符下,我想要列出名称不以abc开头的文件夹的所有文件。 我努力了:

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

我的错误在哪里?

非常感谢。

如何删除具有特定string的所有行,但不删除同一文件的特定部分中包含相同string的行

如何在awk / sed中多次出现两个标记模式之间select行

SED命令获得行x和y之间的第n个制表符分隔值

如何select两种模式之间的线?

禁用sed中反斜杠的转义函数

unix:如何判断一个string是否匹配正则expression式

Python中的Unix文件通配符?

如何使用FINDSTR只获得匹配模式的行号

使用sed删除每个单词上某个字符后的所有内容

查找和replace循环内部

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

NB。 假设你想要不启动ABC文件,这不是你的(企图)正则表达式所说的(任何不是a , b或c文件名)。

我的错误在哪里?

你的错误是认为forfiles命令会支持正则表达式。

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

如果使用xcopy命令而不是echo则使用选项/exclude 。 例如:

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

另外,如果你使用的是PowerShell,另一个选项是operator -match 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐