我必须使用从 iAuditor 中提取的 .csv 文件来运行季度报告。
所有这些 .csv 文件都采用以下格式:
BOW 25-063 - - 2017-12-21.csv
“BOW”是建筑物名称,五位数字字符串是楼层 + 房间号)
或
RMP 1108 - - 2017-12-21.csv
(再次,“RMP”=建筑物/1108=11 楼的 08 室)
我只需要将其精简为建筑物名称、空间、楼层 + 房间编号,
因此:BOW 25-063.csv
或 RMP 1108.csv
我有一个简短的脚本,它完成了大部分工作,但也删除了建筑物和房间号之间的空格:
Get-ChildItem 'H:\csv Files\Testing' -filter *.csv | rename-item -NewName { $_.name.substring(0,$_.BaseName.length-15) + $_.Extension-replace " ","" }
有超过 100 个房间,因此我需要重命名超过 100 个文件,以便可以将它们导入 .xlsx 文件中进行报告。
它们都需要遵循我们建立的命名约定,这样它们就不会出错,而且我也不必手动调整超过 100 个文件名。
寻找调整以根据需要缩短名称,同时在建筑物和楼层/房间号之间留出一个空格。
答案1
您可以使用额外的代码行利用插入方法是在您运行已经使用的第一个命令后,返回并在新格式化的文件名中的第 3 个字符后添加空格。
指示
首先运行原始 PowerShell
Get-ChildItem 'H:\csv Files\Testing' -filter *.csv | rename-item -NewName { $_.name.substring(0,$_.BaseName.length-15) + $_.Extension-replace " ","" }
结果
BOW25-063.csv
运行此 PowerShell 在文件名的第三个字符后添加一个空格
Get-ChildItem 'H:\csv Files\Testing' -filter *.csv | rename-item -NewName {$_.BaseName.insert(3,' ') + $_.Extension}
结果
弓 25-063.csv