Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何使用批处理文件将文件夹中的文件重命名为foldername_File_Batch File_Rename_Move_Directory - Fatal编程技术网

File 如何使用批处理文件将文件夹中的文件重命名为foldername

File 如何使用批处理文件将文件夹中的文件重命名为foldername,file,batch-file,rename,move,directory,File,Batch File,Rename,Move,Directory,你们谁能帮我解决一个问题,我有很多同名的文件,放在sperate文件夹中。 文件夹以数字命名,但其中的文件名为index.XXXX-其中XXXX可以是.jpg或.html或.pdf。 我想制作一个“程序”,可以将所有“索引”文件重命名为与其所在文件夹相同的名称。 文件夹以6位数字命名-所有不同。 之后,我希望已经完成,然后我想把所有重命名的文件移动到一个新的文件夹,这样我将更容易看到整个内容。期待阅读您的答案 @Echo OFF FOR /D /R %%# in (*) DO ( PU

你们谁能帮我解决一个问题,我有很多同名的文件,放在sperate文件夹中。 文件夹以数字命名,但其中的文件名为index.XXXX-其中XXXX可以是.jpg或.html或.pdf。 我想制作一个“程序”,可以将所有“索引”文件重命名为与其所在文件夹相同的名称。 文件夹以6位数字命名-所有不同。 之后,我希望已经完成,然后我想把所有重命名的文件移动到一个新的文件夹,这样我将更容易看到整个内容。期待阅读您的答案

@Echo OFF

FOR /D /R %%# in (*) DO (
    PUSHD "%%#"
    FOR %%@ in ("index*") DO (
        Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@"
        Ren "%%@" "%%~n#%%~x@"
    )
    POPD
)

Pause&Exit
已测试的文件夹结构:

c:\sourcedir\index.pdf                not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css         extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt         extension not specified
c:\sourcedir\010+39\index.txt         not 6-digit dir
c:\sourcedir\12345\index.jpg          not 6-digit dir
c:\sourcedir\1234567\index.jpg        not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg     not 6-digit dir
c:\sourcedir\5000000000\index.jpg     not 6-digit dir
c:\sourcedir\999-99\index.jpg         not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg              not 6-digit dir
c:\sourcedir\yellow\index.jpg         not 6-digit dir
输出:

获取“index.*”文件 筛选指定的扩展名 查找直接目录名 检查长度是否不超过6个字符 尝试将变量设置为1000000..1999999(如果为6位数字名称) 如果成功回显,请使用move命令remove ECHO关键字执行移动 注释测试结构:

c:\sourcedir\index.pdf                not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css         extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt         extension not specified
c:\sourcedir\010+39\index.txt         not 6-digit dir
c:\sourcedir\12345\index.jpg          not 6-digit dir
c:\sourcedir\1234567\index.jpg        not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg     not 6-digit dir
c:\sourcedir\5000000000\index.jpg     not 6-digit dir
c:\sourcedir\999-99\index.jpg         not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg              not 6-digit dir
c:\sourcedir\yellow\index.jpg         not 6-digit dir
结果:

MOVE "c:\sourcedir\000000\index.jpg" "c:\destdir\000000.jpg"
MOVE "c:\sourcedir\000009\index.html" "c:\destdir\000009.html"
MOVE "c:\sourcedir\000009\index.jpg" "c:\destdir\000009.jpg"
MOVE "c:\sourcedir\000009\index.pdf" "c:\destdir\000009.pdf"
MOVE "c:\sourcedir\999999\index.jpg" "c:\destdir\999999.jpg"

如果您想让GUI完成上述所有操作,请使用

打开它,浏览到你的文件夹。现在选中“选择”选项卡中的“子文件夹”选项。文件夹下的所有文件都将列出。在浏览器中选择文件

在“文件”选项卡中,将第一个选项从“保留”切换到“删除”。然后转到“附加文件夹名称”选项卡,并为属性名称设置选项前缀。单击重命名完成


这样做的好处是,它向您显示了文件将被重命名为的预览。

我同意Brandon的观点,即批量文件重命名是在Windows下用目录名重命名文件/为文件添加后缀的好方法


要将所有重命名的文件复制到公共目录,请使用Windows资源管理器搜索所有带有通配符(例如readme*.txt)的文件名。然后选择所有找到的文件,选择复制,导航到目标目录,然后粘贴。

我的解释是所有索引。*文件都将被处理。Fiberflux必须确认。我尝试了这个解决方案,但什么也没发生。可能是因为一些文件夹实际上是7位数字。Elektro Hacker的解决方案工作正常,但没有移动文件。当然,在Ren%%@%%~n%%~n%%~x@*C:\destination\行之后添加一个move%%~n%%~x@行,确保在目标中写入最后一个反斜杠apth:C:\Path\GOOD C:\Path BADI用move完成了这项任务。。。但由于我之前使用的其他命令,它无法工作。是否有只移动重命名文件的命令?它是特定于操作系统的。POSIX系统和Windows one上的不同。
c:\sourcedir\index.pdf                not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css         extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt         extension not specified
c:\sourcedir\010+39\index.txt         not 6-digit dir
c:\sourcedir\12345\index.jpg          not 6-digit dir
c:\sourcedir\1234567\index.jpg        not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg     not 6-digit dir
c:\sourcedir\5000000000\index.jpg     not 6-digit dir
c:\sourcedir\999-99\index.jpg         not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg              not 6-digit dir
c:\sourcedir\yellow\index.jpg         not 6-digit dir
MOVE "c:\sourcedir\000000\index.jpg" "c:\destdir\000000.jpg"
MOVE "c:\sourcedir\000009\index.html" "c:\destdir\000009.html"
MOVE "c:\sourcedir\000009\index.jpg" "c:\destdir\000009.jpg"
MOVE "c:\sourcedir\000009\index.pdf" "c:\destdir\000009.pdf"
MOVE "c:\sourcedir\999999\index.jpg" "c:\destdir\999999.jpg"