
[已解決]批處理命令if后面跟子串運算符的問題最后由 Pchief 于 -12-22 16:35我的代碼是這樣:
- if [%2] equ [] (
- echo no arg!
- goto endp
- )
- setlocal EnableDelayedExpansion
- set argline=%*
- set /a in_quote=0
- :loop1
- if !argline:~0,1! == ^ (
- set /a in_quote=1-!in_quote!
- goto strip1st
- )
- if !in_quote! equ 1 goto strip1st
- if !argline:~0,1! == ^goto endp
- :strip1st
- set argline=!argline:~1!
- goto loop1
- :endp
- echo !argline!
- endlocal
- pause
nclick="copycode($('code0'));">復制代碼
把這段代碼存為文件 repl_np.bat,運行結果如下
- >test
- >call C:documents and SettingsUser桌面batch_testrepl_np.bat notepadC:
- Program Filessc1sc1.exe
- >if [C:Program Filessc1sc1.exe] EQU [] (
- echo no arg!
- goto endp
- )
- >setlocal EnableDelayedExpansion
- >set argline=notepadC:Program Filessc1sc1.exe
- >set /a in_quote=0
- 此時不應有 1!。
- >if !argline:~0,1! == ^ (
- >
nclick="copycode($('code1'));">復制代碼
其中 call 那一行是我運行的實際命令行,請教一下那個“此時不應有1!。”出現的原因?