Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Batch file Bat以文件夹字符作为文件名前缀(&;带日期的后缀_Batch File_Cmd_Renaming - Fatal编程技术网

Batch file Bat以文件夹字符作为文件名前缀(&;带日期的后缀

Batch file Bat以文件夹字符作为文件名前缀(&;带日期的后缀,batch-file,cmd,renaming,Batch File,Cmd,Renaming,当涉及到bat/cmd时,我是一个完全的新手。 我可以在谷歌的帮助下做一些非常基本的事情当我说基本的时候,我说的是xcopy,robocopy等等 我试图写一个代码,将提取前5个字符从当前文件夹和重命名文件中的子文件夹,但也与当前日期的后缀 这就是我想做的 W:\12345\u文件夹这是我要从中提取12345的主文件夹 W:\12345\u folder\subfolder这是要重命名的文件的位置 子文件夹中文件的当前名称如下 file1.txt file2.txt file3.txt 重命名后

当涉及到bat/cmd时,我是一个完全的新手。 我可以在谷歌的帮助下做一些非常基本的事情当我说基本的时候,我说的是xcopy,robocopy等等

我试图写一个代码,将提取前5个字符从当前文件夹和重命名文件中的子文件夹,但也与当前日期的后缀

这就是我想做的

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

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

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

file1.txt
file2.txt
file3.txt

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

12345文件1 2014-10-02.txt
12345文件2 2014-10-02.txt
12345文件3 2014-10-02.txt

我所有的努力都白费了。我可以用这个来确定日期。但是它重命名了整个文件名&不保留现有的文件名

for/f“tokens=1-5 delims=/”%%d in(“%date%”)请重命名“*.txt”%%g%%f-%%e-%%d.txt

我也一直在玩这个:

对于“%cd%”中的%%z执行(
对于“%%~dpz%\.”中的%%a,请执行以下操作(
重命名“**.txt”“%%~nxa-.txt”)

但这同样会覆盖整个文件名,并且不会保留现有的文件名


我必须再次强调,我是一个完全的新手,所以请温柔一点&非常感谢您的帮助。

问题似乎在于Windows中的重命名命令有一些错误,特别是在分配前缀和后缀方面(请参见底部链接)

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

我试图让“日期作为后缀”的解决方案起作用,但在我的cmd版本中,以下操作没有成功:

    REN *.txt ????????????????abc.txt.x
    REN *.x *
返回:无效名称

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

雷恩·巴特

    %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
然后,在示例中使用上述批处理文件:

蝙蝠

    for /f "tokens=1-5 delims=/ " %%d in ("%date%") do renprefix.bat *.txt %%g%%f-%%e-%%d
资料来源:
“4.添加前缀”

谢谢您的回复。我找不到这份工作。我还尝试了链接中的一些示例,但仍然不起作用。它似乎没有重命名任何东西。现在我很困惑。我已经用下面的代码在我的文件名后面加上了日期
@ECHO OFF for/f“tokens=1-5 delims=/“%%d in(“%date%”)DO(SET TODAY=%%f-%%e-%%d)for%%a in(*.txt)DO ren“%%a”“%%a”“%%na%TODAY%%xa”
现在我只需要一些关于前缀文件夹名称的帮助。现在,文件夹名称重命名正在为%%z xlin(“%cd%”DO(对于%%a in(“%%dpz%\\”)DO(对于%%i in(*.pdf,*.xlsx,*.docx,*.sm)确实移动“%%i”“%%~nxz_uuz%%i”)非常有用的是,此代码仅从文件夹名称中提取前5个字符。这是我现在唯一要做的事情,所以任何帮助都会很好。我相信这对一个没有运气的人来说很简单。我甚至不太确定我是如何让上面的代码工作的!