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

[其他] 批处理中用for /f语句输出字符串如何带引号?

  1. for /f %a in ("a" "") do (echo %a)
复制代码
上面这行代码的输出结果是:
a"
请前辈们详细解释一下原理,多谢了。。。

不知道,
关注下。。。

TOP

  1. for /f %a in (^"a^" ^"^") do (echo %a)
复制代码
---学无止境---

TOP

  1. for /f %a in ("a" "") do (echo %a)
复制代码

上面这行代码的输出结果是:
a"

这段代码中set集可以看做是字符串a" ",而for中没有指定delims,所以默认以空格作为分隔符只取字符串中的第一部分a",丢弃了后面的"。
请测试以下代码:
  1. for /f "delims=" %%a in ("a" "") do (echo %%a)
复制代码
  1. for /f "tokens=1,2" %%a in ("a" "") do (echo %%a+%%b)
复制代码
以上仅是主观猜测,如有错误欢迎指正

[ 本帖最后由 0428_hai 于 2010-8-12 18:55 编辑 ]

TOP

纠正一下。你可以不用/F参数,如:

  1. for %%a in ("a" "") do (echo %%a)
复制代码
---学无止境---

TOP

原帖由 0428_hai 于 2010-8-12 18:54 发表

这段代码中set集可以看做是字符串a" ",而for中没有指定delims,所以默认以空格作为分隔符只取字符串中的第一部分a",丢弃了后面的"。
请测试以下代码:
for /f "delims=" %%a in ("a" "") do (echo %%a)
for ...

前辈讲的不是没有道理,不过您的那个输出结果中还有“系统找不到文件三角形菱形”,这个是什么意思呢?还望继续执教。。。

TOP

原帖由 fish 于 2010-8-12 22:23 发表

前辈讲的不是没有道理,不过您的那个输出结果中还有“系统找不到文件三角形菱形”,这个是什么意思呢?还望继续执教。。。

我这儿运行貌似没有任何问题呀

TOP

回复 7楼 的帖子

前辈请过目。。。

TOP

返回列表