
在光盤(pán)上for語(yǔ)句執(zhí)行多個(gè)程序時(shí)執(zhí)行順序?yàn)槭裁磿?huì)對(duì)文件名的大小寫(xiě)敏感前些時(shí)候做了一個(gè)XP的補(bǔ)丁集,用批處理來(lái)靜默安裝。因?yàn)槭窃谔摂M機(jī)中測(cè)試的,在測(cè)試中發(fā)現(xiàn)了一個(gè)很奇怪的問(wèn)題:假設(shè)“patch_2”文件夾下有若干文件,比如說(shuō):a.exeB.exec.exeD.exee.exeF.exe注意:文件名有大小寫(xiě)的區(qū)別。我的批處理的部分代碼如下:
假如將patch_2文件夾及批處理拷貝到硬盤(pán)上執(zhí)行的話,執(zhí)行順序?qū)?huì)是:a.exeB.exec.exeD.exee.exeF.exe按文件名從小到大的順序來(lái)執(zhí)行,文件名是不是大小寫(xiě)都沒(méi)有影響。假如將patch_2文件夾及批處理制成ISO鏡像,然后加載到虛擬機(jī)的光驅(qū)來(lái)執(zhí)行的話,執(zhí)行順序?qū)?huì)是:B.exeD.exeF.exea.exec.exee.exe執(zhí)行順序是先按從小到大的順序執(zhí)行大寫(xiě)字母開(kāi)頭的文件,等所有大寫(xiě)字母開(kāi)頭的文件執(zhí)行完畢后,才按從小到大的順序執(zhí)行小寫(xiě)字母開(kāi)頭的文件。為什么從硬盤(pán)執(zhí)行的話,for語(yǔ)句對(duì)大小寫(xiě)就不敏感,從光驅(qū)執(zhí)行的話,就會(huì)對(duì)大小寫(xiě)敏感呢?是for語(yǔ)句本身就是這樣規(guī)定的,還是我的代碼寫(xiě)得有問(wèn)題?nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- setlocal enabledelayedexpansion
- for /r %%l in (*.exe) do (
- set /a b+=1
- )
- for /r patch_2 %%i in (*.exe) do (
- set /a a+=1
- echo 正在安裝: [!a!/!b!] %%~nxi
- %%i /quiet /norestart /nobackup
- )
- echo.
- echo.
- echo 總計(jì)!b!個(gè)補(bǔ)丁安裝完畢,建議立即重新啟動(dòng)。
- pause

