|
wfy150
初级用户
积分 82
发帖 34
注册 2008-4-29 来自 江西
状态 离线
|
『楼 主』:
如何使用FOR和FIDNDTR来改变如下代码
我想把以下代码中Delay后面的数字都改成30,而且不改变它们的位置
MoveTo 7,68
MoveTo 81,91
KeyDown 16,1
KeyDown 17,1
Delay 78
KeyUp 16,1
Delay 16
KeyUp 17,1
Delay 78
KeyDown 17,1
KeyDown 16,1
Delay 62
KeyUp 17,1
Delay 1562
KeyDown 49,1
Delay 157
KeyUp 49,1
|
|
2008-5-10 19:06 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
2 楼』:
@echo off
for /f "tokens=1* delims= " %%a in (a.txt) do (
if /i "%%a"=="delay" (echo %%a 30) else echo %%a %%b
)
pause
此帖被 +3 点积分 点击查看详情 评分人:【 wfy150 】 | 分数: +1 | 时间:2008-5-10 19:39 | 评分人:【 nipo 】 | 分数: +2 | 时间:2008-5-10 23:53 |
|
|
致精致简! |
|
2008-5-10 19:14 |
|
|
wfy150
初级用户
积分 82
发帖 34
注册 2008-4-29 来自 江西
状态 离线
|
『第
3 楼』:
问下怎么把它输出的结果保存到.TXT中
|
|
2008-5-10 20:47 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
4 楼』:
Quote: | Originally posted by wfy150 at 2008-5-10 20:47:
问下怎么把它输出的结果保存到.TXT中 |
|
在每个 echo 命令后面加上一个重定向符(>>)即可。
|
|
2008-5-10 22:06 |
|
|
nipo
中级用户
积分 228
发帖 106
注册 2008-4-26
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by 26933062 at 2008-5-10 07:14 PM:
@echo off
for /f "tokens=1* delims= " %%a in (a.txt) do (
if /i "%%a"=="delay" (echo %%a 30) else echo %%a %%b
)
pause |
|
领教了,佩服!
有一点不懂,请指教:~~~%%b事先没有定义,它是怎样产生作用的呢?
|
|
2008-5-10 23:57 |
|
|
nipo
中级用户
积分 228
发帖 106
注册 2008-4-26
状态 离线
|
『第
6 楼』:
晕!
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将
每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或
空格定界符号。请注意,这个 for 程序体的语句引用 %i 来
取得第二个符号,引用 %j 来取得第三个符号,引用 %k
来取得第三个符号后的所有剩余符号。对于带有空格的文件
名,您需要用双引号将文件名括起来。为了用这种方式来使
用双引号,您还需要使用 usebackq 选项,否则,双引号会
被理解成是用作定义某个要分析的字符串的。
%i 专门在 for 语句中得到说明,%j 和 %k 是通过
tokens= 选项专门得到说明的。您可以通过 tokens= 一行
指定最多 26 个符号,只要不试图说明一个高于字母 'z' 或
'Z' 的变量。请记住,FOR 变量是单一字母、分大小写和全局的;而且,
同时不能有 52 个以上都在使用中。
|
|
2008-5-11 00:32 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
7 楼』:
我更喜欢自己看帮助去解决问题的人,加分鼓励!!!
|
|
2008-5-11 00:55 |
|
|
nipo
中级用户
积分 228
发帖 106
注册 2008-4-26
状态 离线
|
『第
8 楼』:
谢谢鼓励!~~~本来是提了一个愚蠢的问题。呵呵^-^
|
|
2008-5-11 01:34 |
|
|
wfy150
初级用户
积分 82
发帖 34
注册 2008-4-29 来自 江西
状态 离线
|
『第
9 楼』:
原来也想这么干 忘了在给前面一个ECHO加重定向了.谢谢斑竹了
|
|
2008-5-11 01:45 |
|
|
youling126
初级用户
积分 87
发帖 42
注册 2008-5-7
状态 离线
|
『第
10 楼』:
完整的答案应该是这样吧
@echo off
cd.>b.txt
for /f "tokens=1* delims= " %%a in (a.txt) do (
if /i "%%a"=="delay" (echo %%a 30 >>b.txt) else echo %%a %%b>>b.txt
)
ren a.txt a_old.txt
ren b.txt a.txt
pause
|
|
2008-5-11 04:43 |
|