【发布时间】:2017-10-26 15:23:59
【问题描述】:
我正在编写一个脚本来自动执行几项任务。本质上,它只是重命名文件(如果存在)。但是,这些文件对于其他一些软件的操作至关重要。如果重命名文件失败,或者找不到文件,我希望它说出它是哪个文件。但是,当 REN 命令失败时,它的描述性不是很强。我知道如果失败,它会将 ERRORLEVEL 提高到 1。我可以从失败中获得任何其他信息,例如文件名?还是只是成功或失败?
这将在 Windows 7 及更高版本上运行的机器,因此如果需要,powershell 也是一个选项,但我更喜欢批处理。
谢谢
【问题讨论】:
-
成功或失败。没有关于哪个文件导致失败的可用信息。
-
所有你需要的是在 ren 回显文件试图重命名之后附加一个条件执行命令。
Ren filea.txt fileb.txt || Echo Ren filea.txt fileb.txt failed -
我对这个页面上的所有内容感到困惑。在我看来,您已经将文件名捕获为迭代变量,不是吗?我的意思是,如果您正在循环文件以使用
for %%I in (*) do ren "%%~fI" "%%~nI.bak"或类似的东西执行重命名,对吗?为什么不只是... do (ren "%%~fI" "%%~nI.bak" || echo Renaming %%~nxI failed)或类似的?可能相关,您可能会发现 prename.bat 对批量重命名很有用。
标签: windows powershell batch-file rename