Board logo

标题: 请问如何在DOS下提取文本中的字段?(已解决) [打印本页]

作者: g4rr     时间: 2007-1-24 05:53    标题: 请问如何在DOS下提取文本中的字段?(已解决)

比如在A.TXT中内容是:OPEN=QQ.EXE
能不能在DOS下提取"QQ",也就是程序名称?然后输出到另一文本,显示:A.TXT文本中所包括的程序名为:QQ.EXE?
输出的没什么技术含量,主要是想问DOS下有没有像高级语言中的截取字符段的功能?
多谢指教!

下午偶然看到这个论坛,一上来看了几个钟的帖,感觉真不错.特别是各位版主的热情与真诚实在令我感动.谢谢你们.继续加油哦!我P批处理刚起步,很想学好.希望各位大哥们多多指教...不胜感激!

[ Last edited by g4rr on 2007-1-24 at 04:18 AM ]
作者: lxmxn     时间: 2007-1-24 06:10

@echo off
for /f "delims== tokens=2" %%a in (A.txt) do set a=%%a
echo A.TXT文本中所包含的程序名为%a% >B.txt
start notepad B.txt
exit/b


[ Last edited by lxmxn on 2007-1-23 at 05:35 PM ]
作者: happy3     时间: 2007-1-24 06:15
学习,谢谢!!!!!
作者: kafen     时间: 2007-1-24 06:20


  Quote:
Originally posted by lxmxn at 2007-1-24 06:10:
[code]
@echo off
for /f "delims== tokens=2" %%a in (A.txt) do set a=%%a
echo A.TXT文本中所包含的程序名为QQ.EXE >B.txt
start notepad B.txt
exit/b
[/co ...

好象楼主说的意思跟你所表达的不一样呀?你是指定了只能输出为QQ.exe。
作者: ccwan     时间: 2007-1-24 06:22
原来楼主是要在假dos(cmd)下的代码啊!
作者: ccwan     时间: 2007-1-24 06:23
2楼代码:
@echo off
for /f "delims== tokens=2" %%a in (A.txt) do set a=%%a
echo A.TXT文本中所包含的程序名为%a% >B.txt
start notepad B.txt
exit/b

作者: zh159     时间: 2007-1-24 06:31

@echo off
for /f "delims== tokens=2" %%a in (A.txt) do >B.txt echo A.TXT文本中所包含的程序名为%%~na
exit
多个
@echo off
cd.>B.txt
for /f "delims== tokens=2" %%a in (A.txt) do >>B.txt echo A.TXT文本中所包含的程序名为%%~na
exit

作者: lxmxn     时间: 2007-1-24 06:36

  不好意思,笔误了,已经改过来啦。

作者: g4rr     时间: 2007-1-24 06:38
哇.刚才去看了其他帖了,回来一刷新居然已经有这么多热心人回了帖.好快啊.快得太快了吧.....真是太感动了.谢谢各位大哥的帮忙..
先回帖表示感谢.内容再仔细研究一下.(没有灌水的意思)
作者: g4rr     时间: 2007-1-24 07:12
嗯.受教了.特别谢谢lxmxn,ccwan,zh159.不过还有几个问题想请教你们
1. zh159的代码中"%%~na"的功能是不是起去掉文件名后缀的作用?
2. 如果A.TXT中有三行分别如下:

A.TXT

open=SETUP.ICO
open=setup.exe
open=sxs.exe
open=c:\windows\run.exe

如果输出所有的程序名(不带路径.并且只输出程序,不带其他文件.例如ICO图标)

3. 如何连同输出各程序的大小?

谢谢了!

[ Last edited by g4rr on 2007-1-23 at 06:32 PM ]
作者: ccwan     时间: 2007-1-24 07:19
用zh159的代码
for /f "delims== tokens=2" %%a in (A.txt) do >>B.txt echo A.TXT文本中所包含的程序名为%%~nxa

作者: ccwan     时间: 2007-1-24 07:22
连同输入各程序的大小代码稍多,我要离开了,今天没有时间了,请别人解决吧,若明天没有别人给出解决方法的话,我再来写。
作者: g4rr     时间: 2007-1-24 07:24
好.谢谢ccwan!
作者: lxmxn     时间: 2007-1-24 07:25

  要输出文件的大小,提前是文件必须存在,不知道Open=后面的文件是否存在?

作者: g4rr     时间: 2007-1-24 07:34
如果不存在的话可以输出"此文件不存在".
或者只输出存在文件的大小.其他略过.可以吗?
作者: lxmxn     时间: 2007-1-24 07:49

@echo off
copy nul new.txt>nul
for /f "delims== tokens=2" %%a in (A.txt) do (
        echo %%~nxa >>new.txt
        if exist "%%a" (echo %%~nxa 文件的大小为 %%~za) else (echo %%~nxa文件不存在)
)
start new.txt
pause&exit/b

作者: g4rr     时间: 2007-1-24 08:28
刚才有点事出去了,现在才回来.不好意思

搞定了.谢谢各位!

论坛的人真是太热心了......以后有什么问题我多提问.呵呵.各位老前辈不要嫌我问题太幼稚哦...
作者: netchxing     时间: 2007-1-24 09:01
受教了,学习了,就是有点头晕!