1
所以我一直在編寫一個批處理文件,它可以在每隔一段時間清理舊條目的情況下備份某個文件。我遇到了一個問題,它將存儲月份長度(用於計算目的)(天1,天2,天3等)更簡單和更具可讀性,並通過將單詞天與級別存儲月的變量(1,2,3等)。不幸的是,這似乎從未正確引用正確的變量。以下是相關的代碼,從一個區段計算日期先前28天:分別如何將變量的值連接到批處理文件中另一個變量的名稱?
set days1=31
set days2=28
set days3=31
set days4=30
set days5=31
(etc.)
...
set pastmonthday=%curday%-28
set pastmonthmonth=%curmonth%
set pastmonthyear=%curyear%
if %pastmonthday% lss 0 (
set /a pastmonthmonth=%pastmonthmonth%-1
set /a pastmonthprevmon=1
)
if %pastmonthmonth%==0 (
set /a pastmonthyear-=1
set /a pastmonthmonth=12
)
set monthlengthvar=0
setlocal EnableDelayedExpansion
set tempmonthlengthvar=0
if %pastmonthday% lss 0 (set tempmonthlengthvar = !days%pastmonthmonth%!)
echo.%tempmonthlengthvar%
pause
for /F "delims=" %%A in (!tempmonthlengthvar!) DO (
endlocal
set "monthlengthvar=%%A"
)
set pastmonthday+=%monthlengthvar%
echo.%pastmonthday%
pause
...
的兩個回波輸出0和-7,。我無法弄清楚爲什麼會出現這種情況,不管我如何重寫它。
你的代碼的方式複雜,任何人打擾通工作。創建一個更簡單的版本。另外,解釋一下你希望得到的結果除了你實際得到的東西。 –