我正在尝试排除任何带有"机密";该脚本会批量重命名文件夹中的文件。
然而,当我尝试这个脚本时;机密";它不会改变,没有";机密";
Get-ChildItem -Exclude "*Confidential*" | rename-item -NewName { $_.BaseName + " - Confidential" +$_.Extension }
不幸的是,在没有-Recurse
的情况下,-Include
和-Exclude
参数仅适用于输入路径(在您的情况下为当前目录(的叶组件(文件/目录名(,而不适用于其子级。
解决方法是使用Get-Item *
(或Get-ChildItem *
(。它确保(隐含的(目标路径的子级成为目标(使用显式目标路径,附加/*
;添加-Force
以包括隐藏的子项(,这反过来又确保任何-Include
/-Exclude
参数都应用于这些子级的名称:
Get-Item * -Exclude *Confidential* |
Rename-Item -NewName { $_.BaseName + " - Confidential" + $_.Extension }
有关讨论,请参阅GitHub第3304期。