标题: [其他] 批处理中用for /f语句输出字符串如何带引号? [打印本页]
作者: fish 时间: 2010-8-12 17:15 标题: 批处理中用for /f语句输出字符串如何带引号?
- for /f %a in ("a" "") do (echo %a)
复制代码
上面这行代码的输出结果是:
a"
请前辈们详细解释一下原理,多谢了。。。
作者: plp626 时间: 2010-8-12 17:38
不知道,
关注下。。。
作者: broly 时间: 2010-8-12 18:18
- for /f %a in (^"a^" ^"^") do (echo %a)
复制代码
作者: 0428_hai 时间: 2010-8-12 18:54
- for /f %a in ("a" "") do (echo %a)
复制代码
上面这行代码的输出结果是:
a"
这段代码中set集可以看做是字符串a" ",而for中没有指定delims,所以默认以空格作为分隔符只取字符串中的第一部分a",丢弃了后面的"。
请测试以下代码:-
- for /f "delims=" %%a in ("a" "") do (echo %%a)
复制代码
-
- for /f "tokens=1,2" %%a in ("a" "") do (echo %%a+%%b)
复制代码
以上仅是主观猜测,如有错误欢迎指正
[ 本帖最后由 0428_hai 于 2010-8-12 18:55 编辑 ]
作者: broly 时间: 2010-8-12 21:46
纠正一下。你可以不用/F参数,如:
-
- for %%a in ("a" "") do (echo %%a)
复制代码
作者: fish 时间: 2010-8-12 22:23
原帖由 0428_hai 于 2010-8-12 18:54 发表
这段代码中set集可以看做是字符串a" ",而for中没有指定delims,所以默认以空格作为分隔符只取字符串中的第一部分a",丢弃了后面的"。
请测试以下代码:
for /f "delims=" %%a in ("a" "") do (echo %%a)
for ...
前辈讲的不是没有道理,不过您的那个输出结果中还有“系统找不到文件三角形菱形”,这个是什么意思呢?还望继续执教。。。
作者: 0428_hai 时间: 2010-8-12 23:42
原帖由 fish 于 2010-8-12 22:23 发表
前辈讲的不是没有道理,不过您的那个输出结果中还有“系统找不到文件三角形菱形”,这个是什么意思呢?还望继续执教。。。
我这儿运行貌似没有任何问题呀
作者: fish 时间: 2010-8-13 00:10 标题: 回复 7楼 的帖子
前辈请过目。。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |