簡體   English   中英

當文件名是變量時批處理文件重命名文件

[英]Batch file to rename a file when the filename is a variable

我已經在這里找到了它的基本代碼,並使用它來移動然后重命名我知道文件名的文件。 但是,現在我想移動一個文件,其中文件名是一個參數。

當我運行此代碼時,它將使用當前日期和時間重命名文件夾。 我如何獲得它來重命名文件夾中的變量文件名? 我添加了暫停以嘗試對發生的事情進行故障排除。

Echo Off
SET SiteName=%~1
SET FileDate=%~2
SET File=%SiteName%%FileDate%  


IF Not EXIST C:\Users\Administrator\Documents\~Withdrawal_Report\%File%  GOTO DoNothing

copy C:\Users\Administrator\Documents\~Withdrawal_Report\%File%    C:\Users\Administrator\Documents\~Withdrawal_Report_Archive\%File% 


ren C:\Users\Administrator\Documents\~Withdrawal_Report_Archive\%File% %SiteName%-%date:~4,2%-%date:~7,2%-%date:~10,4%_@_%time:~0,2%h%time:~3,2%m%time:~6,2%s%.csv
ren C:\Users\Administrator\Documents\~Withdrawal_Report_Archive\%File% %SiteName%-%date:~4,2%-%date:~7,2%-%date:~10,4%_@_%time:~1,1%h%time:~3,2%m%time:~6,2%s%.csv


del C:\Users\Administrator\Documents\~Withdrawal_Report\%File%
pause

:DoNothing
Exit

嘗試使用雙引號,如下所示:

Echo Off
SET "SiteName=%~1"
SET "FileDate=%~2"
SET "File=%SiteName%%FileDate%"


IF Not EXIST "C:\Users\Administrator\Documents\~Withdrawal_Report\%File%" GOTO DoNothing

copy "C:\Users\Administrator\Documents\~Withdrawal_Report\%File%" "C:\Users\Administrator\Documents\~Withdrawal_Report_Archive\%File%" 

ren "C:\Users\Administrator\Documents\~Withdrawal_Report_Archive\%File%" "%SiteName%-%date:~4,2%-%date:~7,2%-%date:~10,4%_@_%time:~0,2%h%time:~3,2%m%time:~6,2%s%.csv"
ren "C:\Users\Administrator\Documents\~Withdrawal_Report_Archive\%File%" "%SiteName%-%date:~4,2%-%date:~7,2%-%date:~10,4%_@_%time:~1,1%h%time:~3,2%m%time:~6,2%s%.csv"


del "C:\Users\Administrator\Documents\~Withdrawal_Report\%File%"
pause

:DoNothing
Exit

另外,據我所知,您正在嘗試重命名同一文件兩次。 以前有工作嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM