【发布时间】:2020-02-13 04:53:42
【问题描述】:
我正在尝试重命名位于一个文件夹中但位于不同子文件夹中的大量文件。应重命名文件,使其名称由文件夹名 + 原始文件名组成。我想知道您是否可以添加条件语句,以便在文件名已包含文件夹名称时文件名不会更改。下面的代码执行重命名文件的功能,但不包含 if 语句。
dir -recurse | Rename-Item -NewName {$_.Directory.Name + " - " + $_.Name}
下面的代码是我想象的代码外观的示例:
dir -recurse | if($_.Name -contains $_.Directory.Name) {Rename-Item -NewName {$_.Directory.Name + " - " + $_.Name}}
【问题讨论】:
-
if语句不会从管道中读取。请改用Where-Object。 -
你的意思是如果 -not ... .contains()...
标签: powershell