中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 如何获得命令执行后返回的值
<<   [1] [2] [3]  >>   >
作者:
标题: 如何获得命令执行后返回的值 上一主题 | 下一主题
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『楼 主』:  如何获得命令执行后返回的值

如何获得命令执行后返回的值? 比如,有个文件,名为a.txt,内容是: 1 用type命令: C:\>TYPE A.TXT C:\>1 在批处理中如何获得这个type命令执行后显示的1,并把它加1后保存入a.txt中,即a.txt的内容就变为2了 C:\>TYPE A.TXT C:\>2 环境要求:DOS6.22或DOS7.1 谢谢!


2008-1-2 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everdos
初级用户





积分 52
发帖 21
注册 2008-1-1
状态 离线
『第 2 楼』:  

for /f %%a in (a.txt) do set /a pp=%%a+1 echo %pp% > a.txt


2008-1-3 01:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 3 楼』:  

楼上的,dos下能用吗?呵呵。




Windows 一键还原 www.yjhy.com
2008-1-3 09:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  

test1.bat
call test2.bat 1 2 3 4 5 6 7 8 9
test2.bat
:start1
if "%1"=="" goto end
find "%1"  A.TXT
if errorlevel 0 goto xxx
shift
goto start1

:xxx
shift
echo %1>A.TXT
:end
给个思路,代码未测试




2008-1-3 10:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:  

测试代码可以了,只是执行结果echo %1>A.TXT 其实是echo 2>A.TXT,所以要加转定义符号echo ^%1>A.TXT




2008-1-3 11:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

加强判断errorlevel返回值 test1.bat
@echo off
call test2.bat 1 2 3 4 5 6 7 8 9
test2.bat
:start1
if "%1"=="" goto end
find "%1" A.TXT>nul
if not errorlevel 1 if errorlevel 0 goto xxx
shift
goto start1
goto end

:xxx
shift
echo ^%1>A.TXT

:end




2008-1-3 11:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 7 楼』:  

测试时不知哪里出了问题?有两个问题: (1)出现“一般性错误读驱动器F”的提示 (2)第二次运行test1.bat后的结果还是2,而没有变成3 请指教。 下面是运行的结果 E:\>TYPE A.TXT 1 E:\>TEST1 一般性错误读驱动器F A:放弃,R:重试,F:失败?a E:\>type a.txt 2 e:\>test1 一般性错误读驱动器F A:放弃,R:重试,F:失败?a E:\>type a.txt 2 不知如何贴图,只好敲上去了


2008-1-4 10:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 8 楼』:  

出现一般性错误读驱动器F和代码无关,代码部分没尝试要访问F盘 纯DOS代码不稳定很容易出现一般性错误读驱动器F这样的错误,请检查你的批处理代码是否有访问F盘部分,或者不要加载光驱驱动。 另外6楼的代码你可以在XP下测试,代码纯DOS和XP通用的,只是纯DOS要把echo ^%1>A.TXT改为echo %1>A.TXT [ Last edited by fastslz on 2008-1-4 at 11:04 AM ]




2008-1-4 10:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 9 楼』:  

我是按6楼的代码进行测试的,一点都没变


2008-1-4 11:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 10 楼』:  

(1)在XP下测试没有问题,能够替加,但到9后就不能再加了。 (2)在DOS7.1下测试就出现“一般性错误读驱动器F”。而且不会替加


2008-1-4 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 11 楼』:  

我猜测分析下是什么原因吧 F应该是你的光盘盘符,你启动的DOS下没有find.com外部命令,而Path变量里有%CDROM%或F:\.....,这个时候DOS就尝试读取光盘下目录寻找find.com,所以出现一般性错误读驱动器F,纯DOS下就这样没个细节都不能错。 最后再强调下纯DOS要把6楼的代码echo ^%1>A.TXT改为echo %1>A.TXT




2008-1-4 12:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 12 楼』:  

(1)在XP下测试没有问题,能够替加,但到9后就不能再加了。
只能是9呢也没办法,是find.com限制,因为10里面包含1,如果用sed就没有这个限制了




2008-1-4 12:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 13 楼』:  

谢谢! 真的是没有find.exe命令。加上后就OK了! 在dos7.1下就没有办法突破10以内的限制吗?


2008-1-4 13:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 14 楼』:  

在新DOS时代网站的DOS使用中有介绍count,加法计算的工具,但不知哪里有下载?论坛里没找到


2008-1-4 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 15 楼』:  

@echo off call test2.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 :start1 if "%1"=="" goto end sed -n "/%1/p" A.TXT>nul if not errorlevel 1 if errorlevel 0 goto xxx shift goto start1 goto end :xxx shift echo %1>A.TXT :end sed纯DOS版我的google论坛上有,点我签名连接 sed用法sed.sourceforge.net ...




2008-1-4 13:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
<<   [1] [2] [3]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: