无忧启动论坛

标题: 【 抱歉】%~z1 结果为空 (应该用这个标题才合适) [打印本页]

作者: hotdll    时间: 2011-10-18 22:05
标题: 【 抱歉】%~z1 结果为空 (应该用这个标题才合适)
  1. cat --locate=\r\n (0)/txtsetup.oem | call :dyn_oem (0)/txtsetup.oem start=
  2. ..................
  3. :dyn_oem
  4. echo zheshiwenjiandaxiao: %~z1
  5. if "%3"=="" && echo 这是文件大小:%~z1 && exit
  6. shift 1 && goto :dyn_oem
复制代码
结果:
zheshiwenjiandaxiao:0x2b22
zheshiwenjiandaxiao:0x2b22
.
.
.
.
zheshiwenjiandaxiao:0x2b22
这是文件大小:
BUG的地方
if "%3"=="" && echo 这是文件大小:%~z1  这句的值为空

[ 本帖最后由 hotdll 于 2011-10-19 17:28 编辑 ]
作者: chenall    时间: 2011-10-18 22:22
应该是你自己你问题吧,比如写错。

建议你自己做更仔细的测试,
作者: pseudo    时间: 2011-10-18 22:23
证据不足吧。
作者: hotdll    时间: 2011-10-18 22:50
原帖由 chenall 于 2011-10-18 22:22 发表
应该是你自己你问题吧,比如写错。

建议你自己做更仔细的测试,

简化后的代码:
  1. !BAT
  2. cat ()/ceshi.bat | call :_a ()/ceshi.bat=
  3. pause
  4. exit
  5. :_a
  6. echo %~z1
  7. if "%2"=="" echo zhe shi : %~z1 && exit
  8. shift 2
复制代码
运行结果截图:


请问C大,哪里错了?

[ 本帖最后由 hotdll 于 2011-10-19 07:46 编辑 ]
作者: chenall    时间: 2011-10-18 23:08
抱歉,我没有看到异常,只看到语法错误。。。。
作者: hotdll    时间: 2011-10-18 23:10
标题: 回复 #5 chenall 的帖子
请C大指出。谢谢!!!!
作者: 不点    时间: 2011-10-18 23:16
逻辑运算还是管道?

|| 和 | 应该是不同的吧?
作者: sratlf    时间: 2011-10-19 00:06
标题: 回复 #4 hotdll 的帖子
逻辑上有问题吧  我感觉你这么执行的话  相当于执行

call :_a ()/ceshi.bat=!BAT

以此类推
作者: zxw    时间: 2011-10-19 00:14
这样试试:
  1. cat --locate=\r\n (0)/txtsetup.oem | call :dyn_oem (0)/txtsetup.oem=
  2. ..................
  3. :dyn_oem
  4. echo zheshiwenjiandaxiao: %~z1
  5. if "%2"=="" && echo 这是文件大小:%~z1 && exit
  6. shift 2 && goto :dyn_oem
复制代码

======================================
  1. if "%2"=""
复制代码

差个=号

[ 本帖最后由 zxw 于 2011-10-19 00:15 编辑 ]
作者: pseudo    时间: 2011-10-19 01:05
等号是一眼看出来的笔误。

即使加上等号也还是跟#1楼差不多。
说bug证据不足。

还是自己多折腾吧。
作者: hotdll    时间: 2011-10-19 07:48
标题: 回复 #10 pseudo 的帖子
等号确实是打字的时候手误,我用的浏览器不是IE,无忧的编辑界面对非IE的浏览器支持不好。

即使是加上一个等号,也还是会出现这种情况。就是在if "%2"=="" echo zhe shi :  && exit 的时候,%~z1为空。

P大能不能修改下这个简化的批处理,让他接过正确?

不甚感激。

附注:我用另外一个算法达到了我的目的。提这个纯粹是想弄明白和反馈问题。

[ 本帖最后由 hotdll 于 2011-10-19 07:50 编辑 ]
作者: pseudo    时间: 2011-10-19 10:50

if "%2"==""
改为
echo zero=%0,first=%1,second=%2 && if "%2"==""
便于分析。
作者: chenall    时间: 2011-10-19 11:10

debug 3
看一下运行结果就很明显的。%~xx是运行之前就替换掉了。所以用debug 3看到的就是实际的结果。

我还是认为这是属于人为的错误导致的。
作者: 不点    时间: 2011-10-19 11:12
标题: 回复 #11 hotdll 的帖子
“不甚感激” 就像 “有木有”、“伤不起”一样,成为网络特殊用语,普遍被使用。不知道 google 的翻译能否处理这样的情况。

规范的、正确的用语应该是 “不胜感激”。是 “十分感激”、“感激不尽” 的意思。
作者: 527104427    时间: 2011-10-19 15:47
呵呵,原来不点大也关注这些
作者: sht123960585    时间: 2011-10-20 09:52
不点大师都来教中文了,
现存事实:网络普遍了,中文是有点不规范了,值得深思




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3