中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 21:42
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 帮我看一下这两个有什么不同!
可打印版本  733 / 8
第1楼 hy433124shc 发表于 2007-03-29 04:11
中级用户 发帖 75 积分 201
帮我看一下这两个有什么不同!
FOR /F %%A IN (5.TXT) DO ECHO %%A >> 4.TXT

如果 5.TXT中为
1
12
123
1234
54321
543
5432
命令成功

若5.TXT中为
ExecutablePath
C:\WINDOWS\system32\svchost.exe
ExecutablePath
命令不成功

为什么?

这两个有区别吗?
第2楼 Climbing 发表于 2007-03-29 04:16
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
结果有什么区别呢?

可能只需要在for里面加上一个参数,倒好:for /f "tokens=*"...
第3楼 NaturalJ0 发表于 2007-03-29 04:21
银牌会员 发帖 533 积分 1,181
看不出哪里不成功
第4楼 hy433124shc 发表于 2007-03-29 04:25
中级用户 发帖 75 积分 201
如果5.TXT中为

ExecutablePath
C:\WINDOWS\system32\svchost.exe
ExecutablePath

则在我这没形成 4.TXT



如果5.TXT为
1
12
123
1234
54321
543
5432

则形成 4.TXT

[ Last edited by hy433124shc on 2007-3-28 at 03:28 PM ]
第5楼 hy433124shc 发表于 2007-03-29 05:27
中级用户 发帖 75 积分 201
3楼对我说 ‘你5.txt保存的编码可能不是ANSI。"

于是
我把以5.TXT内容为
ExecutablePath
C:\WINDOWS\system32\svchost.exe
ExecutablePath

的内容COPY 到 6.TXT
用FOR /F %%A IN (6.TXT) DO ECHO %%A >> 4.TXT
使命令成功,形成4.TXT

再用
FOR /F %%A IN (5.TXT) DO ECHO %%A >> 4.TXT
命令还是不成功,没形成4.TXT


怪了!!!
难到问题出在这个5.TXT上?

[ Last edited by hy433124shc on 2007-3-28 at 05:13 PM ]
第6楼 Climbing 发表于 2007-03-29 05:34
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
看不出有什么问题:


G:\work\dos\batch>type 5.txt
ExecutablePath
C:\WINDOWS\system32\svchost.exe
ExecutablePath

G:\work\dos\batch>for /f %i in (5.txt) do @echo %i >> 4.txt

G:\work\dos\batch>type 4.txt
ExecutablePath
C:\WINDOWS\system32\svchost.exe
ExecutablePath
第7楼 hy433124shc 发表于 2007-03-29 05:53
中级用户 发帖 75 积分 201
回6楼

3楼对我说 ‘你5.txt保存的编码可能不是ANSI。"

内容为
ExecutablePath
C:\WINDOWS\system32\svchost.exe
ExecutablePath

是一BAT中的
WMIC PROCESS WHERE(PROCESSID="%3") GET executablepath >> 5.TXT 形成的,
而内容为
1
12
123
1234
是我用记事本做的,

我试了,就是不行!
3楼说了之后,我就像5楼那样试了!
第8楼 hy433124shc 发表于 2007-03-29 06:08
中级用户 发帖 75 积分 201
5.TXT内容是一BAT中的
WMIC PROCESS WHERE(PROCESSID="%3" ) GET executablepath >>5.TXT
形成的

而内容为
1
12
123
是我用记事本做的,

是在同一台机器中做的!

请问一下,我想把 WMIC PROCESS WHERE(PROCESSID="%3" ) GET executablepath 的结果传给 A

如下为什么不行,
SET A=<WMIC PROCESS WHERE(PROCESSID="%3" ) GET executablepath

给我个方法,最好能去掉 ExecutablePath
得到 A= C:\WINDOWS\system32\svchost.exe 之类的

谢谢了!!!

[ Last edited by hy433124shc on 2007-4-1 at 03:38 PM ]
第9楼 Climbing 发表于 2007-03-29 22:28
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
for /f "usebackq tokens=* skip=1" %%i in (`WMIC PROCESS WHERE PROCESSID^=%3 GET executablepath`) do set A=%%i

试试上面这个命令。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023