中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 利用数字变量来提取文本内容(技巧)
作者:
标题: 利用数字变量来提取文本内容(技巧) 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『楼 主』:  利用数字变量来提取文本内容(技巧)

test.txt内容如下:
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Administrator\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=A8E5C30E80494F9
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
LOGONSERVER=\\A8E5C30E80494F9
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
USERDOMAIN=A8E5C30E80494F9
USERNAME=Administrator
USERPROFILE=C:\Documents and Settings\Administrator
windir=C:\WINDOWS
我们通过下面的代码就可以做到对文本任一行=号左边的字符提取
@echo off&setlocal enabledelayedexpansion
for /f "delims==" %%i in (test.txt) do (
    set /a n+=1
    set _!n!=%%i
)
set /p a=请输入要提取的行数:
set b=!_%a%!
echo %b%
pause




批处理之家新域名:www.bathome.net
2008-4-22 15:25
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
hehuawei
新手上路





积分 16
发帖 7
注册 2008-4-22
状态 离线
『第 2 楼』:  老大

帮我个忙好不,解答一下,我最近老是在打印PDF文件,所以,就按照([已结]如何用批处理实现批量打印某个文件夹下的所有pdf文件
),结果我的所有文件夹,打开很烦,要右击选择“打开”,我想把它删掉,该怎么做?

(对第一个问题,创建一个批处理文件 Print.bat, 放在任意目录,如C:\windows,内容就只有下面一行(假设Acrobat Reader所在路径是c:\program files\acrobat 6.0\Reader\AcroRd32.exe,操作系统以WinXP Professional为例):
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------

@for %%a in (*.pdf) do "c:\program files\acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%a"
然后对文件夹进行关联:

打开“我的电脑”,从菜单栏上选“工具”--“文件夹选项”--“文件类型”,下拉列表,找到“文件夹”,单击“高级”--“新建”--在“操作”框里填入“打印所有pdf文件”,执行的应用程序就填上那个批处理的路径:C:\windows\print.bat,按“确定”。

第二个问题,大体上一致,批处理就长一些,取名为Print2.bat,同样放在C:\windows下:
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------

@echo off
for %%a in (*.pdf) do "c:\program files\acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%a"
set DestDir=%date:~0,-4%
if not exist %DestDir% md %DestDir%
move *.pdf %DestDir%

2008-4-22 15:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 3 楼』:  

此法论坛内早有人在用了。

2008-4-22 15:33
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  

打开“我的电脑”,从菜单栏上选“工具”--“文件夹选项”--“文件类型”,下拉列表,找到“文件夹”,单击“高级”--在操作里找到”打印所有pdf文件”--单击“删除”--确定OK
ps:你求助的方式好猛啊!

[ Last edited by zw19750516 on 2008-4-22 at 03:54 PM ]



批处理之家新域名:www.bathome.net
2008-4-22 15:38
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by abcd at 2008-4-22 15:33:
此法论坛内早有人在用了。

我知道,我是为了把这个方法推广才写下这个贴子的,请搞清楚我的本意啊!



批处理之家新域名:www.bathome.net
2008-4-22 15:41
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: