Board logo

标题: [其他] [已解决]批处理call命令很懵的错误:命令行不正确 [打印本页]

作者: 浅暮丶千殇    时间: 2024-11-6 19:41     标题: [已解决]批处理call命令很懵的错误:命令行不正确

本帖最后由 浅暮丶千殇 于 2024-11-7 02:52 编辑
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set "file=C:\Users\Administrator\Desktop\cheatengine-x86_64.po"
  4. set "file1=D:\Program Files\Cheat Engine\languages\zh_CN\cheatengine-x86_64.po"
  5. set count=0
  6. set str=
  7. for /F "tokens=1* delims=:" %%a in ('findstr /N /C:"#:" "%file1%"') do (
  8.     Call :GetfileStr "%%b" "%file%"
  9.     pause
  10. )
  11. pause
  12. Exit
  13. :GetfileStr
  14. echo.1
  15. pause
  16. for /F "tokens=1* delims=:" %%a in ('findstr /N /C:"%~1" "%~2"') do (
  17.     set count=%%a
  18.     Call :GetMsgstr "!count!"
  19. )
  20. Goto :Eof
  21. :GetMsgstr
  22. for /F "tokens=1* skip=%count% delims= " %%a in (%file%) do (
  23.     if "%%a" equ "msgctxt" Set /A count+=2
  24.     if "%%a" equ "msgid" (if "%%b" equ """" Goto :Eof) && Set /A count+=1
  25.     if "%%a" equ "msgstr" (
  26.         if "%%b" equ """" Goto :Eof
  27.         echo.%%b
  28.         set "str=%%b"
  29. REM Call :GetfileStr "%%b" "%file%" 这个语句放在这里会报错: 命令行不正确, 但是放在其他地方则是正常的, 真的很懵
  30.         Call :GetfileStr "%%b" "%file%"
  31.         Goto :Eof
  32.     )
  33.     Goto :GetMsgstr
  34. )
复制代码

作者: aloha20200628    时间: 2024-11-6 20:33

回复 1# 浅暮丶千殇

在37行上面加一行
  1. echo,"%%b"&pause
复制代码
看看调用 Call :GetfileStr "%%b" "%file%" 之前 %%b 的取值?

作者: flashercs    时间: 2024-11-6 20:48

  1. Call :GetfileStr "%%~b" "%file%"
复制代码
试试
作者: 浅暮丶千殇    时间: 2024-11-7 02:51

回复 2# aloha20200628 谢谢,我找到问题了,参数传错了
作者: 浅暮丶千殇    时间: 2024-11-7 02:52

回复 3# flashercs 谢谢,是参数传错了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2