1
我已經寫了一個批處理文件以將文件從一臺服務器複製到另一臺服務器,但是,我需要能夠重命名剛剛複製到的文件包含文件夾路徑。我想出了做這項工作的代碼是:批處理文件將文件從一臺服務器複製到其他服務器上將遠程目錄添加到文件名中
ECHO OFF
SETLOCAL EnableDelayedExpansion
set include=*.log
FOR /L %%i IN (1,2,3) DO (
net use i: \\my-server%%i\d$\IISLogs
FOR /R i:\ %%G IN (%include%) DO (
XCOPY %%G D:\ServerLogsAndBackups\IIS\w%%i\
)
7z a -t7z D:\ServerLogsAndBackups\IIS\w%%i\files%%i.7z *.log -mx9
net use i: /delete
)
文件會從什麼是未來,如:
I:\ w3svc98435783475 \ ex110430.log
什麼我想do將其複製到D:\ ServerLogsAndBackups \ IIS \ w1 \ w3svc98435783475_ex110430.log中。我不確定如何讓遙控器上的目錄路徑放入文件名。
千恩萬謝
我得到這個:目的地在目標上指定了一個文件名還是目錄名(F = file,D = directory)?我顯然希望它成爲一個文件..你知道我可以壓制這個嗎? – Jarede 2011-06-15 16:09:43
我在* xcopy的末尾添加了*,這似乎是在做伎倆(儘管我的文件現在以.log.log結尾),所以如果你有一個更好的解決方案,那麼你可以編輯你的文章?謝謝Mechaflash – Jarede 2011-06-15 16:21:10
當通過%〜G擴展變量,其中G = FOR臨時變量時,可以在G之前使用一些參數。參數包括f =完整路徑名(即C:\ Path \ File.extension),d =驅動器(即C:\)p =路徑(即文件夾\文件夾),n =文件名W/O擴展名,x =擴展文件。 例如,我們有一個文件位於C:\ Documents and Settings \ User \ desktop \ file.txt,%%〜nxG僅表示文件名和擴展名(file.txt) %%〜pnxG表示路徑和文件名以及擴展名(文件和設置\用戶\桌面\文件.txt) – Mechaflash 2011-06-15 17:14:13