找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 35256|回复: 10

[文本处理] 用echo输出数字到文本也需要转义吗?

[复制链接]
发表于 2011-5-28 03:06:33 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-23 10:50 编辑

用echo输出文件时,数字也转义?

把“WScript.CreateObject("WScript.Shell").Run "cmd.exe /c "%##0%BmpProgram\BalloonTip.exe" ""!xtqp_s!"" !xtqp_n! !xtqp_t! 1", 0”写入文件notice.vbs,怎么写?
  1. echo WScript.CreateObject("WScript.Shell").Run "cmd.exe /c "%##0%BmpProgram\BalloonTip.exe" ""!xtqp_s!"" !xtqp_n! !xtqp_t! 1", 0>>"%##0%BmpProgram\notice.vbs"
复制代码
以下输出为空,问题在后面的“,”和“0”上,在它们前面添加转义符“^”即可。
再来一个:

  1. echo set /a js+=1>>"%##0%BmpProgram\Baoshi.bat"
复制代码
正确的:

  1. echo set /a js+=^1>>"%##0%BmpProgram\Baoshi.bat"
复制代码
发表于 2011-5-28 03:11:41 | 显示全部楼层
擦,刚刚看了几集火影,发现居然这么晚还有人在发帖!
这个是基础问题,在数字和大于号之间加个空格就好了。
发表于 2011-5-28 04:14:11 | 显示全部楼层
本帖最后由 applba 于 2011-5-28 04:15 编辑

楼主火星了:
没事不要吧数字和重定向符号合体,否则数字会被解释成句柄。

正确的写法:
在他们之间加上空格(分隔符)即可。
  1. echo set /a js+= 1 >>"%##0%BmpProgram\Baoshi.bat"
复制代码
或者
  1. echo set /a js+= 1 1>>"%##0%BmpProgram\Baoshi.bat"
复制代码
发表于 2011-5-28 16:12:07 | 显示全部楼层
3# applba
句柄是什么意思?
0>
1>
2>
哪里可以查看他们的帮助信息。
 楼主| 发表于 2011-5-28 17:08:46 | 显示全部楼层
晕,个个都知道,看来只是我孤陋寡闻了!~
你们一说,我想起了这个东东:
echo %var%>nul 2>nul
……
发表于 2011-5-28 17:15:03 | 显示全部楼层
4# Hello123World


0是输入句柄,句柄1是正确输出,句柄2是错误输出,3~9由命令自行定义(说是这么说,反正我是从来没碰到过的),经常被用来进行句柄备份,超过9的句柄不存在,严格说是应该存在更高的句柄,但是我们至今无法对其进行任何操作。
5# cjiabing


印象中echo从来只有正确回显,没有错误输出,所以echo str>nul就够了,不过既然echo了又把它屏蔽,有什么意义呢?
发表于 2011-5-28 20:15:35 | 显示全部楼层
或者说,你转义的是句柄,而不是简单的数字。
 楼主| 发表于 2011-5-28 21:52:09 | 显示全部楼层
6# zm900612
哈哈,我是举例说意思——句柄,就如applba所说的,这里的数字已经不单纯是数字的了!~
 楼主| 发表于 2011-5-28 22:18:14 | 显示全部楼层
7# applba
最近一年,认真学习的时间少了,自己摸索的时间多了,一些基础的东西没学好,所以有这种奇怪的反应,谅解谅解!~
确实,在写了几个比较大的程序之后,感觉自己的技术已经足够处理一些常见问题了,没有更大的要求去学习一些自己未掌握的东西。如果有问题,也能够在实践中不停地摸索,一般都可以迎刃而解。特别是在写batmplayer的过程中,积累了相当多的经验,也总结了一些常用的代码,比如随机乱序、结束指定进程等等。但这一些并不能掩盖自己一些基础知识的不足,像现在这个问题,当时百思不得其解,为什么数字也要转义符?现在看来,不过是在这种特定的情形下变成了句柄,一个很简单的问题。所以说,批处理的学习,也是终身学习!~
发表于 2011-5-29 19:26:38 | 显示全部楼层
9# cjiabing


结束指定进程用的哪个方法?
 楼主| 发表于 2011-5-30 09:36:03 | 显示全部楼层
10# Batcher
主要用tasklist或者taskkill就可以了,有时候也可以用wmic,只是要用for进行更详细的分析。比如有多个cmd,只结束指定标题的、指定路径的、指定Pid的、指定服务名的进程等等,都是很容易做到的,我前面也发过《进程判断常用代码 》,对你来说这个应该不是很难。

但我有个疑问,(我还没详细看过句柄),为何echo 1>txt.txt没有问题,而上面那些例子却有问题?也就是,上面情况下“数字>”变成了句柄?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:03 , Processed in 0.020906 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表