0

我提前道歉 - 我对批处理文件的世界很陌生,而且我在这个问题上太过分了。我正在尝试制作一个简单的批量重命名批处理文件(虽然到目前为止对我来说不是那么简单,哈哈),我在其中获取一个包含多个随机命名文件的文件夹,然后重命名并将其中的所有文件以非常特定的格式移动到一个新文件夹中.

默认情况下,文件夹的格式始终为 (name #),我希望将第一个文件重命名为文件夹名称,第二个文件具有相同的名称 + 1。所以在名为 zeta 24 的文件夹中,文件得到在名为 zeta 的新文件夹中重命名,第一个文件是 zeta 24,第二个是 zeta 25,依此类推。最后,我可以创建一条指向目录确切位置的行,以便在填充文件夹后运行批处理文件吗?我非常害怕重命名一个不打算重命名的文件夹,所以我将根据需要手动将这些文件夹移动到一个目录中,以便批处理文件查看。

任何可以提供的帮助将不胜感激,因为我现在正在尝试自己学习所有这些。再次感谢你!!!!

-本

4

1 回答 1

0

会话示例:

md "zeta 25"
for /l %a in (1 1 19) do @type nul>"zeta 25\test %a.txt"
dir /b "zeta 25"

输出是:

测试 1.txt
测试 10.txt
测试 11.txt
测试 12.txt
测试 13.txt
测试 14.txt
测试 15.txt
测试 16.txt
测试 17.txt
测试 18.txt
测试 19.txt
测试2.txt
测试3.txt
测试4.txt
测试 5.txt
测试 6.txt
测试 7.txt
测试 8.txt
测试9.txt

批号:

@echo off &setlocal enabledelayedexpansion
for /d %%a in (zeta*) do (
    for /f "tokens=1,2" %%b in ("%%~a") do set "newfolder=%%~b"&set /a base=%%c
    md "new\!newfolder!"
    for %%b in ("%%~a\*") do (
        move "%%~b" "new\!newfolder!\!newfolder! !base!%%~xb" >nul
        set /a base+=1
    )
)
dir /b "new\%newfolder%"
    

和输出:

zeta 25.txt
泽塔 26.txt
泽塔 27.txt
zeta 28.txt
zeta 29.txt
泽塔 30.txt
泽塔 31.txt
泽塔 32.txt
泽塔 33.txt
泽塔 34.txt
泽塔 35.txt
泽塔 36.txt
泽塔 37.txt
泽塔 38.txt
泽塔 39.txt
zeta 40.txt
泽塔 41.txt
zeta 42.txt
zeta 43.txt

于 2013-10-30T10:07:01.800 回答