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

[其他] 新手求助批处理命令findstr及for

[复制链接]
发表于 2013-9-16 11:03:18 | 显示全部楼层 |阅读模式
  1. findstr /c:"batch_args" %input% | findstr /c:"\-t" > batch_args.txt
  2. for %%f in (batch_arg?.txt) do if %%~zf GTR 0 set NEWTMP=no
  3. for %%f in (batch_arg?.txt) do if %%~zf GTR 0 set RMTMP=no
复制代码
本人基本知识有一点点,但上述三行不是非常理解。
求解:这三行语句的意思。
谢谢。
发表于 2013-9-16 13:24:50 | 显示全部楼层
先说第一行吧,哪里不理解?
 楼主| 发表于 2013-9-16 14:19:47 | 显示全部楼层
回复 2# DAIC
我对第一行的理解:
findstr /c:"batch_args" %input% | findstr /c:"\-t" > batch_args.txt
在我的输入文件中,寻找字符串“batch_args”
继续寻找?字符串“\-t”,并将字符串“-t”写入文件batch_args.txt中
|命令在这里的作用是什么?第一行后半段我的理解对不对?
谢谢
发表于 2013-9-16 14:40:04 | 显示全部楼层
回复 3# EVAHI


|的作用是,把左边命令的结果传递给右边的命令,作为右边命令的输入。

d:\Test>type a.txt
1 batch_args \-t
2 batch_args -t
3 batch_args
4 batch -t

d:\Test>findstr /c:"batch_args" a.txt
1 batch_args \-t
2 batch_args -t
3 batch_args

d:\Test>findstr /c:"batch_args" a.txt | findstr /c:"\-t"
1 batch_args \-t
2 batch_args -t
 楼主| 发表于 2013-9-16 14:57:50 | 显示全部楼层
回复 4# DAIC
看了你的命令和输出结果,这一行懂了。

新出现一个问题,为啥我运行第二个命令
findstr /c:"batch_args" a.txt
的时候,会出现无数个进程cmd.exe,就像中毒一样,电脑内存直接爆了。

方便的话,加Q,742112634
发表于 2013-9-16 15:24:13 | 显示全部楼层
回复 5# EVAHI


不要把脚本命名为findstr.bat
就用test.bat吧
 楼主| 发表于 2013-9-16 15:43:11 | 显示全部楼层
回复 6# DAIC
帅呆了,这都被你知道了,…… 震惊了,我
问题继续,呵呵……

问题一:
命令行里面寻找的是"\-t“,为什么执行的时候,找的却是"-t"?

问题二:
关于第二行的理解:
for %%f in (batch_arg?.txt) do if %%~zf GTR 0 set NEWTMP=no
在文件batch_arg?.txt中循环变量%%f,当文件容量大于0,就设定NEWTMP=no
妈呀,我的理解好抽象,自己都不懂,大神DAIC,求解。
发表于 2013-9-16 16:11:08 | 显示全部楼层
回复 7# EVAHI


\是转义字符,在这个例子中,\-t和-t得到的结果相同。
发表于 2013-9-16 16:14:28 | 显示全部楼层
回复 7# EVAHI


?是通配符,比如你有多个类似的文件:
d:\Test>dir /b batch_arg?.txt
batch_arg1.txt
batch_arg2.txt
batch_arg3.txt

那个for命令的作用是检查一下这些文件里面是否有空文件。
 楼主| 发表于 2013-9-16 16:28:00 | 显示全部楼层
回复 9# DAIC
批处理的转义字符是"^"而不是"\"
"\"貌似是和字符串有关的东西,网上也没查到什么有用的资料。
能详细解释一下"\"的用途吗?
发表于 2013-9-16 17:31:31 | 显示全部楼层
回复 10# EVAHI


^是大部分情况下的转义字符
%是%的转义字符
\是正则表达式里面的转义字符
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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