gpt4 book ai didi

batch-file - 批处理文件重命名文件夹中的文件并再次返回

转载 作者:行者123 更新时间:2023-12-02 05:40:10 25 4
gpt4 key购买 nike

恐怕这是一个有点陈旧的问题,但这里是:

我有一个程序可以按顺序生成一些 .RAW 文件,例如。

示例_1.RAW
Example_2.RAW

然后根据需要向数字添加额外的有效数字,例如。

示例_10.RAW
Example_200.RAW

我需要将这些文件名转换为数字,以便通过批处理器运行,然后生成更多文件作为输出。我写了一个批处理文件来重命名并将新旧文件名存储在一个文本文件中,我的代码是:

@echo off
set i=1
echo Running Batch Rename
for %%f in (*.RAW) do (set file=%%f) & CALL :rename

:rename
echo %i% >>Names.txt
echo %file% >>Names.txt
echo. >>Names.txt
ren %file% %i%.RAW
set /A i+=1

然后将我所有的 .RAW 重命名为 1.RAW、2.RAW 等,并使用新旧文件名创建 Names.txt。由于 DOS 处理数字的方式,这确实意味着我得到了一个稍微不稳定的编号过程,即它将 Ex_1、Ex_10、Ex_100、Ex_101 处理为 1、2、3、4,这将导致后期处理中的更多工作这些结果,以便在正确的地方获得正确的结果。

是否可以编写另一个批处理文件来获取 Names.txt 并反转输出文件的过程?所以它需要一个包含 1.raw、1.something、1.something 的文件夹,请引用 Names.txt 并将它们重命名为 Example_1.raw 等?

最佳答案

这应该可以完成工作

@echo off
set cnt=0
del Names.txt > nul 2>&1
echo Running Batch Rename
for %%f in (*.RAW) do (
set "file=%%f"
CALL :renameToNumber
)
echo .. Do the jobs ...
rem ** As sample: copy the file
copy *.raw *.some
call :renameBack
exit /b

:renameToNumber
set /A cnt+=1
set "number=00000%cnt%"
set "number=%number:~-4%"
(echo %number% %file%) >> Names.txt
ren "%file%" %number%.RAW
exit /b

:renameBack
for /F "tokens=1,*" %%A in (names.txt) DO (
set "number=%%A"
set "filename=%%~nB"
call ren %%number%%.* "%%filename%%_%%number%%.*"
call echo ren %%number%%.* "%%filename%%_%%number%%.*"
)
exit /b

关于batch-file - 批处理文件重命名文件夹中的文件并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com