使用文件夹字符和&amp ;;蝙蝠前缀文件名带日期的后缀

时间:2014-10-02 16:48:08

标签: batch-file cmd renaming

对于bat / cmd来说,我是一个完全新手。 我可以通过谷歌的一点帮助做非常基础的! &安培;当我的意思是基本即时通讯xcopy,robocopy等。

我正在尝试编写一个代码,该代码将从当前文件夹中提取前5个字符&重命名子文件夹中的文件,但也使用当前日期后缀。

所以这基本上就是我想要做的事情。

W:\12345_folder这是我要从中提取12345的主文件夹。

W:\12345_folder\subfolder这是要重命名的文件的位置

子文件夹中文件的当前名称如下

file1.txt file2.txt file3.txt

重命名后,它们应如下所示

12345 file1 2014-10-02.txt 12345 file2 2014-10-02.txt 12345 file3 2014-10-02.txt

我所有的努力都是徒劳的。我可以用这个来获取日期。但它重命名整个文件名&不保留现有文件名。

for /f "tokens=1-5 delims=/ " %%d in ("%date%") do rename "*.txt" %%g%%f-%%e-%%d.txt

我也一直在玩这个:

for %%z in ("%cd%") do ( for %%a in ("%%~dpz%\.") do ( rename "**.txt" "%%~nxa-.txt"))

但是,这又会覆盖整个文件名,并且不会保留现有的文件名。

我必须再次强调我是一个完整的新手,所以要温柔和放松。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题似乎与Windows中的RENAME命令有一些错误,特别是分配前缀和后缀(参见底部链接)。

我只做了部分答案,因为我无法将日期作为后缀使用。但是,这将允许您使用您选择的前缀(包括日期)为文件名添加前缀。

我试图让“日期作为后缀”解决方案正常工作,但我的cmd版本中的以下内容没有成功:

    REN *.txt ????????????????abc.txt.x
    REN *.x *

返回:名称无效

这是我的替代解决方案,添加前缀日期。对于第一批示例,请创建两个批处理文件:

renprefix.bat

    %4
    FOR %%v IN (%1) DO CALL %0 %1 %2 %%v GOTO:Part2
    ATTRIB -h %2%1
    GOTO End
    :Part2
    REN %3 %2%3
    ATTRIB +h %2%3
    :End

然后,在您的示例中使用上述批处理文件:

rendate.bat

    for /f "tokens=1-5 delims=/ " %%d in ("%date%") do renprefix.bat *.txt %%g%%f-%%e-%%d

来源: http://www.lagmonster.org/docs/DOS7/z-ren1.html “4.添加前缀”