【发布时间】:2015-06-11 20:11:29
【问题描述】:
我在这里找到了这个脚本并对其进行了修改。它一次仅适用于 1 个文件,而不适用于多个文件。如何让这个脚本重命名指定目录中的多个文件?
@echo off
setlocal enabledelayedexpansion
set X=64
set Y=4
set FOLDER_PATH=c:\temp\renamefiles\files
pushd %FOLDER_PATH%
for %%f in (*) do if %%f neq %~nx0 (
set "filename=%%~nf"
set "filename=!filename:~%X%,-%Y%!"
ren "%%f" "!filename!%%~xf"
)
popd
【问题讨论】:
-
我不明白你的意思 - 脚本重命名 FOLDER_PATH 中的所有文件(但不是具有脚本名称的文件 - 奇怪!)。并且不考虑文件名是否包含要替换的字母。我会从头开始编写一个新脚本,它首先过滤要重命名的文件,然后只重命名那些。
-
你试过 PowerShell 吗?
gci "c:\temp\renamefiles\files\" | ren {$_.Name.SubString(64, $_.Name.Length-60)} -
原来脚本工作正常。我没有注意我放在文件夹中进行测试的 2 个文件,它们最终具有相同的名称。我的错。但是,我真的很喜欢那个 powershell 脚本,嘭!现在我有 2 种不同的方式来重命名文件!
标签: batch-file windows-console