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

[文本处理] [已解决]批处理不换行写入文本的几种方法为何有时会卡住?

[复制链接]
发表于 2011-7-22 14:41:38 | 显示全部楼层 |阅读模式
本帖最后由 q115643492 于 2011-7-23 19:20 编辑
  1. for /f "delims=" %%i in ('findstr /i "K: L:" "c:\windows\temp\wined.txt"') do ((set/p=“%%i”<nul)>>"c:\windows\temp\nwined.txt")
复制代码
这是我一大段代码其中的一句,意思是在c:\windows\temp\wined.txt中找出包含K:和L:的行,然后输出到nwined.txt里,且在一行显示,不换行。((set/p=“%%i”<nul)>>"c:\windows\temp\nwined.txt") 这里有点疑惑,我这样写不知道对不对,但这样写整个代码是正确执行的。
最初这一句do后面的代码我没有象这样写,而是写成(set/p=“%%i”<nul>>"c:\windows\temp\nwined.txt") ,还查阅过资料,改成过(>>"c:\windows\temp\nwined.txt" set/p=“%%i”<nul)以及(set/p=“%%i”>>"c:\windows\temp\nwined.txt" <nul),这2种写法,是正确的,但是都会出现整个代码在某个地方卡住,而去掉这行,就不卡住,最后我改成了最上面那段,才可以。但我还是不明白问题出在哪,也不知道我改成那样是对的还是错的,还请有心人帮我分析下。

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-22 15:02:40 | 显示全部楼层
那几种用法基本可以说是等价的(打开 echo on 看预处理回显就知道了,预处理之后,有效的句柄重定向都被挪到命令尾部,所以原先放哪都没太大区别(前提是保证重定向符没有被转义),唯一的区别应该就是当重定向符的前一个字符为数字时可能会出错。
楼主能否贴上前后几行的代码呢?
 楼主| 发表于 2011-7-22 15:55:26 | 显示全部楼层
本帖最后由 q115643492 于 2011-7-22 16:06 编辑

2# CrLf

恩。你说的这点我明白了,这几种都是正确的写法。包括我自己胡乱改的((set/p=“%%i”<nul)>>"%isctmp%\nwined.dat")
我把代码贴出来了,还麻烦帮我看看,但我没发现有没有句子写错了,真是纳闷。我现在的代码是可以正确执行,但出现这个奇怪问题,我还是想搞清楚,相信值得大家支持,谢谢了。
发表于 2011-7-22 18:45:07 | 显示全部楼层
本来想分析一下,但一看到这种代码风格,就没心思了。

"%ser%\rashico.exe"这个程序是啥?运行后会不会马上退出?

评分

参与人数 1PB +2 收起 理由
CrLf + 2 乐于助人

查看全部评分

发表于 2011-7-22 20:15:39 | 显示全部楼层
4# powerbat


赞同
建议楼主使用缩进
 楼主| 发表于 2011-7-23 10:50:31 | 显示全部楼层
4# powerbat
"%ser%\rashico.exe"这个程序是AU3写的刷新托盘图标的程序,运行后马上退出。
是不是我发的代码太长了,问题是不知道哪个环节出了问题,如果只发前后几段代码肯定是没用的。
麻烦那就算了吧,反正我的问题也解决了,“不换行写入文本”代码用其中一种表示就可以使整个代码顺利运行。
我想就算要找也不一定能找出问题所在。
发表于 2011-7-24 14:29:43 | 显示全部楼层
  1. for /f "delims=" %%i in ('findstr /i "K: L:" "c:\windows\temp\wined.txt"') do ((set/p="%%i"<nul)>>"c:\windows\temp\nwined.txt")
复制代码
虽然没意义,试试换成英文的引号测试一下。

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 17:06 , Processed in 0.021603 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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