
[已解決]批處理怎樣根據(jù)兩文件的版本高低或大小來決定要不要復(fù)制并覆蓋原文件最后由 solan 于 -5-21 18:49我的原意是這樣的,如果不存在%AllUsersProfile%A目錄,就把%cd%A整個文件夾和文件復(fù)制到%AllUsersProfile%,如果存在,那么這個時候如果%AllUsersProfile%A中沒有1.exe文件,就徹底刪除文件夾A,再把%cd%A整個文件夾和文件復(fù)制到%AllUsersProfile%,如果%AllUsersProfile%A中存在1.exe文件,那么把它跟%cd%A中的1.exe進行版本高低的比較:如果前者的版本低或同版本,就執(zhí)行上面的復(fù)制;如果前者的版本高就不復(fù)制。 但是,我不會提取文件版本,只好比大小了,批處理如下:
但是這個代碼不行,如果不存在%AllUsersProfile%A目錄倒能正常執(zhí)行,一旦存在A不管誰大小批處理立馬閃退。后來我這樣寫,還是不行:nclick="copycode($('code0'));">復(fù)制代碼
- if not exist %AllUsersProfile%A (goto 11) else (if not exist %AllUsersProfile%A1.exe goto 22)
- for %%1 in (%AllUsersProfile%A1.exe) do set wind=%%~z1
- for %%1 in (%cd%A1.exe) do set snow=%%~z1
- if %wind% equ %snow% goto 22
- if %wind% lss %snow% goto 22
- :11
- xcopy /s/e/q/r/y %cd%A %AllUsersProfile%A
- :22
- rmdir /s/q %AllUsersProfile%A
- xcopy /s/e/q/r/y %cd%A %AllUsersProfile%A
- pause
在此懇請哪位老大幫忙改下代碼,最好是通過兩文件的版本高低比較來寫代碼,xp和win7通用,先謝過了!!nclick="copycode($('code1'));">復(fù)制代碼
- md %AllUsersProfile%A
- if not exist %AllUsersProfile%A1.exe (goto 22) else (
- for %%1 in (%AllUsersProfile%A1.exe) do set wind=%%~z1
- for %%1 in (%cd%A1.exe) do set snow=%%~z1
- if %wind% equ %snow% goto 22
- if %wind% lss %snow% goto 22
- if %wind% gtr %snow% goto end
- :22
- rmdir /s/q %AllUsersProfile%A >nul 2>nul
- xcopy /s/e/q/r/y %cd%A %AllUsersProfile%A >nul 2>nul
- :end
- cls)
- pause

