[英]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.