|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『楼 主』:
echo 变量的问题,变量的值有特殊字符
set "str=`-=[]\;',./~%!@#o^&*()_+{}|:<>?"abc123ABC00"
>test.txt echo "%str%"
xp 下可以把这个变量的值写入文件,2003就不可以,原因未知,还有谁03也测试下,2003的cmd下可以echo出
echo "%str%" >test.txt 这样写不进文件的
|
|
2006-12-2 10:08 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
2 楼』:
测试版本:
名称: 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 ]
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-12-2 10:39 |
|
|
tianzizhi
高级用户
积分 622
发帖 214
注册 2006-9-22
状态 离线
|
『第
3 楼』:
我的是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 ]
|
|
2006-12-2 10:43 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
4 楼』:
下面写入方式不能创建文件,也不能写入:)
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-2 10:44 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
5 楼』:
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
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-12-3 01:13 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
6 楼』:
redtek兄:echo "%str% >test.txt 这样不是不通用
|
|
2006-12-3 02:03 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
|
2007-1-12 12:40 |
|
|