中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: "求助"运行BAT的BAT 上一主题 | 下一主题
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『楼 主』:  "求助"运行BAT的BAT

刚学BAT.....
DOS基础也为零.........

但,还是挺喜欢BAT的....
请高手写一个程序...

此程序作用:

运行程序
指定:BAT或TXT文件,并运行它.......
此程序运行BAT是一个附带
而将TXT直接按BAT运行,才是目的与难点......
(将TXT转BAT这一步省掉)

请高手,有空练练手呀...
不过此程序还是挺适用的............

[ Last edited by cad55 on 2007-12-17 at 11:13 AM ]

2007-12-17 11:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  

txt不能作为bat直接运行(主要是特殊字符和某些命令的限制),要把txt内容作为bai运行,必须转为bat

最简单的方法:more 1.txt>1.bat

[ Last edited by zh159 on 2007-12-17 at 11:19 AM ]



2007-12-17 11:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by zh159 at 2007-12-17 11:17 AM:
txt不能作为bat直接运行(主要是特殊字符和某些命令的限制),要把txt内容作为bai运行,必须转为bat

最简单的方法:more 1.txt>1.bat

[ Last edited by zh159 on 2007-12-17 at 11:19 AM ]

谢谢应助...
不过....

俺是这样想的..但俺不会这样编...
方法一:
将TXT文件,更名BAT
运行它.
再更名回TXT.



方法二:
打开txt.用BAT将其另存为bat后,运行.
后再删除....

上述方法应可以实现.也可以有更好的方法,,,,

请高手..练练手呀.......

[ Last edited by cad55 on 2007-12-17 at 11:32 AM ]

2007-12-17 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 4 楼』:  

more 1.txt>1.bat
start " " 1.bat
del 1.bat

不是太好.....,,,,,,,还是要自学......

高手有什么更好办法.....

[ Last edited by cad55 on 2007-12-17 at 11:42 AM ]

2007-12-17 11:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 5 楼』:  



  Quote:
copy 1.txt 1.bat
start /wait 1.bat
del 1.bat



  Quote:
ren 1.txt 1.bat
start /wait 1.bat
ren 1.bat 1.txt





2007-12-17 12:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by zh159 at 2007-12-17 12:59 PM:



回复:zh159


从BAT再转为TXT.
就错误了.

还有就是兄台之前所言:Txt语句.有些不能通过更名的方法实现转换BAT.

兄台或各行路过高手...
写一个,先将TXT引入后,再另存的方法...........而不是更名的方法.

2007-12-17 13:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 7 楼』:  

我没说过不能通过更名的方法实现转换BAT

某些命令一般不能用BAT读取TXT方式运行,但可以把需要的BAT作为TXT存档,改名后就可以运行(BAT和TXT都是文本文件

PS:不知道你是否了解BAT。



2007-12-17 16:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by zh159 at 2007-12-17 04:57 PM:
我没说过不能通过更名的方法实现转换BAT

某些命令一般不能用BAT读取TXT方式运行,但可以把需要的BAT作为TXT存档,改名后就可以运行 ...

强晕

兄台,是误认为这样意思...

但直接将TXT文件,通过更改文件名的方法,是有代码转换的问题.

俺试过了.

也就是,将BAT从TXT转换,最好是另存为.

俺的意思是,
用一个BAT去选择一个TXT.
将其另存为直接按BAT运行.
但TXT自身不变..........

也等视于,将TXT按BAT运行.
.

2007-12-17 17:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 9 楼』:  


:TOP
SET /P file_type=.ext?
ASSOC |findstr /C:"%file_type%" /C:"%file_type:~1%file"&&GOTO TOP
FOR /F "delimst==" %%i in ('assoc') DO if "%%i" ==
SET sys_path=%systemroot%\system32\
IF NOT "%file_type:~0,1%%file_type:~4%" == "." GOTO :EOF
IF /i "%1" == "uninstall" GOTO UNINSTALL
>%sys_path%%file_type:~1%.CMD ECHO @ECHO OFF
>>%sys_path%%file_type:~1%.CMD ECHO IF NOT "%%~nx0 %%~x1" == "%file_type:~1%.cmd .%%~n0" GOTO :EOF
>>%sys_path%%file_type:~1%.CMD ECHO COPY "%%~dpnx1" "%%temp%%\%%~n1.cmd" /y
>>%sys_path%%file_type:~1%.CMD ECHO Start /b "%%temp%%\%%~n1.cmd"
>>%sys_path%%file_type:~1%.CMD ECHO pause


ASSOC %file_type%=%file_type:~1%file
FTYPE %file_type:~1%file=%file_type:~1%.CMD "%%1"
REG ADD "HKEY_CLASSES_ROOT\%file_type:~1%file\DefaultIcon" /ve /d "%SystemRoot%\System32\shell32.dll,-153" /f
REG ADD "HKEY_CLASSES_ROOT\%file_type:~1%file\shell\edit\command" /ve /d "%SystemRoot%\System32\NOTEPAD.EXE %1"
GOTO :EOF

:UNINSTALL
DEL %systemroot%\system32\%file_type:~1%.CMD
REG DELETE "HKEY_CLASSES_ROOT\%file_type%" /f
REG DELETE "HKEY_CLASSES_ROOT\%file_type:~1%file" /f
ASSOC .txt=txtfile


2007-12-17 19:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by everest79 at 2007-12-17 07:33 PM:
[code]
:TOP
SET /P file_type=.ext?
ASSOC |findstr /C:"%file_type%" /C:"%file_type:~1%file"&&GOTO TOP
FOR /F "delimst==" %%i in ('assoc') DO if "%%i&qu ...

楼上的.

看不懂
用不了

2007-12-17 20:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 11 楼』:  

百分之百解决你的问题

2007-12-17 21:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by everest79 at 2007-12-17 09:19 PM:
百分之百解决你的问题

用不了 ,,,,,,,,,,,

2007-12-17 21:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 13 楼』:  

有啥问题你贴上来哇

2007-12-17 21:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by everest79 at 2007-12-17 09:44 PM:
有啥问题你贴上来哇

运行后

C:\海>SET /P file_type=.ext?
.ext?


输任意东东,
就一闪.............886..........

2007-12-17 21:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 15 楼』:  

嘿嘿,这里是让你输入一个扩展名,然后会根据你输入的扩展名来建立一个新的文件关联,这种文件可以双击执行如批处理一样,也可以用右键打开用记事本编辑
输入的扩展名格式为 .ext
扩展名长度为三个字母
系统内已经存在的输入无效

你可以输入个.hsb 执行完后你新建一个.hsb文件看看

2007-12-17 21:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: