批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]VBS基礎視頻教程
[批處理文件精品]批處理版照片整理器[批處理文件精品]純批處理備份&還原驅動在線第三方下載
返回列表 發帖

[文本處理] [已解決]批處理命令 if 后面跟子串運算符的問題

本帖最后由 Pchief 于 2014-12-22 16:35 編輯

我的代碼是這樣:
  1. if [%2] equ [] (
  2. echo no arg!
  3. goto endp
  4. )
  5. setlocal EnableDelayedExpansion
  6. set argline=%*
  7. set /a in_quote=0
  8. :loop1
  9. if !argline:~0,1! == ^" (
  10. set /a in_quote=1-!in_quote!
  11. goto strip1st
  12. )
  13. if !in_quote! equ 1 goto strip1st
  14. if !argline:~0,1! == ^  goto endp
  15. :strip1st
  16. set argline=!argline:~1!
  17. goto loop1
  18. :endp
  19. echo !argline!
  20. endlocal
  21. pause
復制代碼
把這段代碼存為文件 repl_np.bat,運行結果如下
  1. >test
  2. >call "C:\Documents and Settings\User\桌面\batch_test\repl_np.bat"   notepad  C:
  3. \"Program Files"\sc1\sc1.exe
  4. >if [C:\"Program Files"\sc1\sc1.exe] EQU [] (
  5. echo no arg!
  6. goto endp
  7. )
  8. >setlocal EnableDelayedExpansion
  9. >set argline=notepad  C:\"Program Files"\sc1\sc1.exe
  10. >set /a in_quote=0
  11. 此時不應有 1!。
  12. >if !argline:~0,1! == ^" (
  13. >
復制代碼
其中 call 那一行是我運行的實際命令行,請教一下那個“此時不應有1!。”出現的原因?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str="bbs.bathome.net"
  4. if !str:~0^,1! == ^" (
  5.     echo yes
  6. ) else (
  7.     echo no
  8. )
  9. pause
復制代碼
  1. @echo off
  2. set str="bbs.bathome.net"
  3. if ^%str:~0,1% == ^" (
  4.     echo yes
  5. ) else (
  6.     echo no
  7. )
復制代碼
1

評分人數

    • Pchief: 很好,如果能說明下原因就更好了技術 + 1

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str="bbs.bathome.net"
  4. set a=^"
  5. if "!str:~0,1!" == "!a!" (
  6.     echo yes
  7. ) else (
  8.     echo no
  9. )
復制代碼
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str="bbs.bathome.net"
  4. if "!str:~0,1!" == "^"" (
  5.     echo yes
  6. ) else (
  7.     echo no
  8. )
復制代碼
比較二者。

TOP

回復 3# yiwuyun


第一段代碼的第4行里面的 ^ 可以省略吧
第二段代碼報錯,語法不正確。

TOP

返回列表
36选7开奖结果今天福建 27快乐10分走势图 吉林省11选五开奖结果今天 炒股倾家荡产案例 北京快三今天预测号 哪个时时彩平台招代理 融资炒股 广西快三跨度走势图 香港免费资料+王中王 2001年上证指数 pc蛋蛋单双大小技巧 万科股票走势 多乐彩下载 股票指数行情今天 浙江快乐12开奖结果走势图 股票指数投资策略课后测验 三分彩是全国开奖吗