2016-11-23 235 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