如何在批处理中使用新的不同名称重命名路径中的文件?

Ole*_*_08 10 for-loop rename batch-file

我有一个文件destination.txt,其中包含有关我的CD的路径信息:

 C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\SME99.ISO
C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\Biomasse.iso 
C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\SAMPE36.ISO
Run Code Online (Sandbox Code Playgroud)

现在我必须一个接一个地用PPN.txt文件中的数字重命名ISO:

470692405 
394006801 
348117876 
Run Code Online (Sandbox Code Playgroud)

所以它应该是

SME99.ISO -> 470692405.ISO
Biomasse.iso -> 394006801.ISO
Sampe36.ISO -> 348117876.ISO
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

< "PPN.txt"  (for /F "usebackq delims=" %%a in ("destination.txt") do (
  set/P out="" & rename "%%a" "!out!%%~xa" 
Run Code Online (Sandbox Code Playgroud)

我想修改它适用于文件destination.txt的方式的代码:

Success on: "C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\SME99.ISO" 
Error on:   "C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\Biomasse.iso" 
Success on: "C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\SAMPE36.ISO" 
Run Code Online (Sandbox Code Playgroud)

如果"Success on"保留在destination.txt中的路径之前,则应始终仅使用PPN.txt中的数字重命名该图像.但是如果"Error on"停留在destination.txt中的路径之前,则应该将此图像重命名为PPN.txt%中的此e_%编号.所以它应该是额外的前缀e_

小智 5

编辑批处理现在考虑前缀,将destination.txt冒号处的行拆分为%%A和%%B

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
< "PPN.txt"  (
    for /F "usebackq tokens=1,* delims=:" %%A in ("destination.txt") do (
        Set "out="
        Set /P "out="
        Set "out=!out: =!"
        If /i "%%A" equ "Success on" (
            ren %%B "!out!.ISO" && echo Renamed %%B to "!out!.ISO" 
        ) Else If /i "%%A" equ "Error on" (
            ren %%B "e_!out!.ISO"  && echo Renamed %%B to "e_!out!.ISO" 
        ) Else (Echo unknown prefix "%%~A")
    ) 
)
Run Code Online (Sandbox Code Playgroud)

模拟的ISO文件返回此输出:

Renamed  "C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\SME99.ISO"  to "470692405.ISO"
Renamed    "C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\Biomasse.iso"  to "e_394006801.ISO"
Renamed  "C:\Users\NekhayenkoO\Desktop\LOG Dateien CD Imaging\SAMPE36.ISO"  to "348117876.ISO"
Run Code Online (Sandbox Code Playgroud)

  • 而不是`ren %% B ...`我会写`ren'%% ~B"...`总是有适当的引用... (2认同)
  • @aschipfl因为%% B包含前导空格〜不起作用.Ren不介意空格,但对于〜修饰符,它不是外引号. (2认同)