【发布时间】:2021-09-14 18:43:12
【问题描述】:
我正在尝试批量重命名文件夹中的 1000 个 *.json 文件,但我在实际执行脚本时遇到了麻烦。
每个文件都以递增方式命名:
“图像 1.json”、“图像 2.json”、......“图像 1000.json”
我想将它们重命名为不带扩展名的整数 (-1)(我知道这听起来很奇怪,但必须这样做)。
所以
- “图像1.json”变为:0
- “图像2.json”变为:1
- “图像 423.json”变为:422
- “图片1000.json”变成:998
为了不搞砸,我创建了一个只有前 10 个文件的测试文件夹:
我保存了它:C:\test\testfolder
这是我的脚本
$files = Get-Content
$x = 0
foreach ($file in $files) {
Rename-Item $file $x
$x++
}
我将脚本保存在:C:\test\rename.ps1
在 PowerShell 中,我导航到目录:
cd c:\test\testfolder\
然后在 PowerShell 中运行脚本
C:\test\rename.ps1
Power shell 然后给了我这个(“它要求我输入,我正在输入数字......它无处可去):
我做错了什么?
【问题讨论】:
-
[1] 尝试使用参数名称,而不是仅仅在 cmdlet 中抛出值并希望它们坚持正确的参数。 [grin] ///// [2] 你试过重命名删除非数字的文件吗?
标签: powershell for-loop rename