[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] call传递的参数中带有引号和空格,导致传递后被分割

本帖最后由 踏沙行 于 2018-8-30 05:31 编辑

已知:J:\1.txt内容为:
  1. "Key k" : "T1=abc def gh"
  2. "Value v":  "T2=IJK lmn OP"
  3.   " se sf" : " T3= FLK   LK  sEL"
  4.   "  S4 s " : FEEL DEEP File txt
复制代码
使用call代码如下:
  1. @echo off
  2. for /f  "tokens=1,2 delims=:" %%a in (J:\1.txt) do call :lp "%%a";"%%b" c
  3. pause&exit
  4. :lp
  5. echo,%1;%2
  6. goto:eof
复制代码
结果,%1,%2会自动将传过来的参数按引号和空格为标记分割,即使参数用引号包括
结果为:
  1. ""Key;k" "
  2. " "Value;v""
  3. "  ";se
  4. "  ";S4
复制代码
如果%%a和%%b的引号不包含空格,倒是可以正常传递。
请问,怎么让传递参数时,内容不被分割?

返回列表