中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 23:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » "求助"运行BAT的BAT 查看 2,509 回复 24
楼 主 "求助"运行BAT的BAT 发表于 2007-12-17 11:09 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
刚学BAT.....
DOS基础也为零.........

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

此程序作用:

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

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

[ Last edited by cad55 on 2007-12-17 at 11:13 AM ]
2 发表于 2007-12-17 11:17 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
txt不能作为bat直接运行(主要是特殊字符和某些命令的限制),要把txt内容作为bai运行,必须转为bat

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

[ Last edited by zh159 on 2007-12-17 at 11:19 AM ]
3 发表于 2007-12-17 11:28 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
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 ]
4 发表于 2007-12-17 11:37 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
more 1.txt>1.bat
start " " 1.bat
del 1.bat

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

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

[ Last edited by cad55 on 2007-12-17 at 11:42 AM ]
5 发表于 2007-12-17 12:59 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
copy 1.txt 1.bat
start /wait 1.bat
del 1.bat


ren 1.txt 1.bat
start /wait 1.bat
ren 1.bat 1.txt
6 发表于 2007-12-17 13:34 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
Originally posted by zh159 at 2007-12-17 12:59 PM:




回复:zh159


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

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

兄台或各行路过高手...
写一个,先将TXT引入后,再另存的方法...........而不是更名的方法.
7 发表于 2007-12-17 16:57 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
我没说过不能通过更名的方法实现转换BAT

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

PS:不知道你是否了解BAT。
8 发表于 2007-12-17 17:13 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
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运行.
.
9 发表于 2007-12-17 19:33 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线

: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
10 发表于 2007-12-17 20:57 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
Originally posted by everest79 at 2007-12-17 07:33 PM:

: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 ...



楼上的.

看不懂
用不了
11 发表于 2007-12-17 21:19 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
百分之百解决你的问题
12 发表于 2007-12-17 21:40 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
Originally posted by everest79 at 2007-12-17 09:19 PM:
百分之百解决你的问题



用不了 ,,,,,,,,,,,
13 发表于 2007-12-17 21:44 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
有啥问题你贴上来哇
14 发表于 2007-12-17 21:46 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
Originally posted by everest79 at 2007-12-17 09:44 PM:
有啥问题你贴上来哇


运行后

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


输任意东东,
就一闪.............886..........
15 发表于 2007-12-17 21:53 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
嘿嘿,这里是让你输入一个扩展名,然后会根据你输入的扩展名来建立一个新的文件关联,这种文件可以双击执行如批处理一样,也可以用右键打开用记事本编辑
输入的扩展名格式为 .ext
扩展名长度为三个字母
系统内已经存在的输入无效

你可以输入个.hsb 执行完后你新建一个.hsb文件看看
论坛跳转: