标题: echo 变量的问题,变量的值有特殊字符
[打印本页]
作者: vkill
时间: 2006-12-2 10:08
标题: echo 变量的问题,变量的值有特殊字符
set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
>test.txt echo "%str%"
xp 下可以把这个变量的值写入文件,2003就不可以,原因未知,还有谁03也测试下,2003的cmd下可以echo出
echo "%str%" >test.txt 这样写不进文件的
作者: redtek
时间: 2006-12-2 10:39
测试版本:
名称: WindowsServer 2003, Enterprise Edition
版本: 5.2 内部版本 3790
C:\TEMP\temp>set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
C:\TEMP\temp>>test.txt echo "%str%"
C:\TEMP\temp>type test.txt
"`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
Windows Server 2003 可以正常写入~:)
[
Last edited by redtek on 2006-12-1 at 09:40 PM ]
作者: tianzizhi
时间: 2006-12-2 10:43
我的是windows2003 测试了一下,
set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
echo "%str%" >test.txt 这样写不进去.
set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
echo "%str%" ">test.txt"
这样可以写入,请vkill测验一下,最好可以把这样可以写入的原因说一下,让大家理解一下.
[
Last edited by tianzizhi on 2006-12-2 at 11:08 AM ]
作者: redtek
时间: 2006-12-2 10:44
下面写入方式不能创建文件,也不能写入:)
C:\TEMP\temp>set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
C:\TEMP\temp>echo "%str%" >test.txt
"`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00" >test.txt
以上是帮兄测试的结果~:)
测试版本:
名称: WindowsServer 2003, Enterprise Edition
版本: 5.2 内部版本 3790
作者: redtek
时间: 2006-12-3 01:13
C:\TEMP>set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
C:\TEMP>echo "%str%"
"`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
Echo 显示上面加了引号的变量内容成功(不加引号肯定显示不了这些特殊符号)
(然后再测试:)
C:\TEMP>echo %str%
此时不应有 >。
(说明上面有特殊符号原因)
C:\TEMP>echo %str%"
此时不应有 >。
(再上面这样测一个,给它“配”一个引号,输出错误,说明特殊符号不在“匹配”。
C:\TEMP>echo "%str%
"`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00
(再上面这样测一下,给它左边“匹配”一下,结果可以成功输出)
(这说明 str 变量内的那一个单独的“引号” 就是str变量内abc123……左边的那一个)
(echo "%str% 正好与str变量中那个“引号”配对使用了,而后面的abc12……这些是非特殊字符)
所以,使用下面命令就可以成功写入文件了:
C:\TEMP>echo "%str% >test.txt
C:\TEMP>type test.txt
"`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00
作者: vkill
时间: 2006-12-3 02:03
redtek兄:echo "%str% >test.txt 这样不是不通用
作者: scriptor
时间: 2007-1-12 12:40
有掏到好东西了