2016-11-23 178 views
0

我有下面的代码重命名一个特定的文件,在这种情况下,16919.csv在最后追加日期并将其放在与原始文件同名的文件夹中。 但是,我有这个相同的批处理文件设置多个文件名。该命令用于获取文件名称并使用它来运行下面的命令。所以我可以有一个文件来重命名不同名称的多个文件。这怎么可能?用多个名称重命名文件

@echo off 
for /f "delims=" %%a in ('wmic OS Get localdatetime ^|find "."') do set "dt=%%a" 
set "YY=%dt:~2,2%" 
set "YYYY=%dt:~0,4%" 
set "MM=%dt:~4,2%" 
set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" 
set "Min=%dt:~10,2%" 
set "Sec=%dt:~12,2%" 

set datestamp=%DD%%MM%%YYYY% 
set timestamp=%HH%%Min%%Sec% 
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec% 

ren "16919.csv" "/16919/16919 - %datestamp%.csv" 
+2

也许如果你用一些输入和输出例子来更新你的问题,这些例子可以帮助我们回答你的问题。 – Squashman

+0

您基本上正在寻找['for'](http://ss64.com/nt/for.html)循环以及['move'](http://ss64.com/nt/move.html )命令... – aschipfl

回答

0

下面的脚本被限制在一个扩展的仅重命名文件(在这种情况下,.CSV):

@echo off 
for /f "delims=" %%a in ('wmic OS Get localdatetime ^|find "."') do set "dt=%%a" 
set "YY=%dt:~2,2%" 
set "YYYY=%dt:~0,4%" 
set "MM=%dt:~4,2%" 
set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" 
set "Min=%dt:~10,2%" 
set "Sec=%dt:~12,2%" 

set datestamp=%DD%%MM%%YYYY% 
set timestamp=%HH%%Min%%Sec% 
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec% 

for /f "delims=" %%i in ('dir /b /a-d *.csv') do ren "%%~i" "%%~ni %datestamp%%%~xi" 

只要运行该脚本文件的文件夹中要追加日期到。

参考this question

+0

谢谢你,这是我想我不能使用其他,因为这是计划运行我不亲自运行它自己,所以不能拖放。我只是将最后一行改为: 'for/f“delims =”%% i in('dir/b/ad * .csv')do ren“%%〜i”“/ %%〜ni/%%〜ni - %datestamp %%%〜xi“' – cheesemarathon