中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 12:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样编写一个打开某个文件的批处理 查看 2,551 回复 15
楼 主 怎样编写一个打开某个文件的批处理 发表于 2006-11-06 06:57 ·  中国 山东 淄博 联通
新手上路
积分 16
发帖 7
注册 2006-04-05 07:35
20年会员
UID 53341
状态 离线
那位老大介绍一个DOS批处理的实际例子!谢谢!!
例如:我有10个单独电子表格文件,用一个批处理在WIN XP下打开调用,启动批处理文件后,提示选择项,比如输入 1 打开第一个电子表格,输入 2打开第二个电子表格......。请高人帮忙,先谢谢了!

[ Last edited by namejm on 2006-11-5 at 08:20 PM ]
2 发表于 2006-11-06 07:06 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

假设你的电子表格文件的名称依次为1.exl,2.exl,…………

@echo off
:begin
set /p choose=请输入要打开的电子表格文件的序号:
start "" /min %choose%.exl
goto begin
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-06 09:34
3 发表于 2006-11-06 07:09 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
set /p
if %var%==1 start 1&goto :eof
4 发表于 2006-11-06 07:25 ·  中国 山东 淄博 联通
新手上路
积分 16
发帖 7
注册 2006-04-05 07:35
20年会员
UID 53341
状态 离线
我是菜鸟,谢谢楼上的二位老大,我用了可以,但是我看不懂,菜,菜菜!!!

@echo off
:begin
set /p choose=请输入要打开的电子表格文件的序号:
start "" /min %choose%.exl
goto begin

[ Last edited by xhz2006 on 2006-11-6 at 07:27 AM ]
5 发表于 2006-11-06 07:32 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  有时间多看看帮助吧.
hh ntcmds.chm::/ntcmds.htm

6 发表于 2006-11-06 07:58 ·  中国 山东 淄博 联通
新手上路
积分 16
发帖 7
注册 2006-04-05 07:35
20年会员
UID 53341
状态 离线
再次谢谢lxmxn,看帮助去 ^.^
7 发表于 2006-11-06 08:01 ·  中国 广东 河源 电信
中级用户
★★
积分 266
发帖 98
注册 2006-04-21 20:29
20年会员
UID 54223
性别 男
状态 离线
@echo off ///这个就是执行时不显示本身.自己试试
:begin //这个是标号来的....下面用到
set /p choose=请输入要打开的电子表格文件的序号: ///好像是设一个变量是choose ...键盘输入的数字传给这个变量.
start "" /min %choose%.exl ////start /? 帮助看看..就是打开 一个exl文件.他的名就是.刚才你输入的数字...%choose% 比如刚才输了1.那么%choose%这个就是1了.
goto begin 打开一个文件后..再跳回开头那里...一直这样循环着.
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-06 20:47
纵是千年万年 亦难以忘记
8 发表于 2006-11-06 08:10 ·  中国 山东 淄博 联通
新手上路
积分 16
发帖 7
注册 2006-04-05 07:35
20年会员
UID 53341
状态 离线
谢谢zerostudy,你的解释对我来说帮助很大,谢谢了!!继续帮助交流!!!
如果:
@echo off
:begin
set /p choose=请输入要打开的电子表格文件的序号:
start "" /min %choose%.xls
quit

就退出了对吗?

[ Last edited by xhz2006 on 2006-11-6 at 08:19 AM ]
9 发表于 2006-11-06 08:20 ·  中国 广东 河源 电信
中级用户
★★
积分 266
发帖 98
注册 2006-04-21 20:29
20年会员
UID 54223
性别 男
状态 离线
好像不是哦..这个call 是调另外的批处理.或者另外的标号..DOS不知没有这个quit ...要退出.下面都不用写.他执行完了直接退出..

[ Last edited by zerostudy on 2006-11-6 at 08:21 AM ]
纵是千年万年 亦难以忘记
10 发表于 2006-11-06 08:23 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  如果要退出,把 goto begin 一句去掉就可以了,或者换成 exit,或者换成 goto :eof 都行,quit 不是XP下的退出命令。实际上,一旦执行到最后一句,如果再没有跳转语句或call语句,那么,下一步的动作将是退出。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
11 发表于 2006-11-06 08:33 ·  中国 山东 淄博 联通
新手上路
积分 16
发帖 7
注册 2006-04-05 07:35
20年会员
UID 53341
状态 离线
谢谢9楼的朋友和namejm版主,继续学习!

@echo off
:begin
path=c:\.....
set /p choose=请输入要打开的电子表格文件的序号:
start "" /min %choose%.exl
goto begin

就在不同的路径下调用打开了吧?

[ Last edited by xhz2006 on 2006-11-6 at 08:38 AM ]
12 发表于 2006-11-06 08:50 ·  中国 广东 河源 电信
中级用户
★★
积分 266
发帖 98
注册 2006-04-21 20:29
20年会员
UID 54223
性别 男
状态 离线
以下可以打开不同文件夹下的文件
你可以用还是用set /p
@echo off
:q
set /p a=按y打开文件按n退出:
if %a%==y goto lu
if %a%==n goto e
:lu
set /p b=请输入路径(比如c盘要打c:,c盘下的文件夹a要打c:\a):
goto begin
:begin
set /p choose=请输入要打开的电子表格文件的序号:
start "" /min %b%\%choose%.exl
goto q
:e
exit
纵是千年万年 亦难以忘记
13 发表于 2006-11-06 09:13 ·  中国 山东 淄博 联通
新手上路
积分 16
发帖 7
注册 2006-04-05 07:35
20年会员
UID 53341
状态 离线
批处理真是奇妙无穷,谢谢zerostudy的指点! ^.^
14 发表于 2006-11-06 18:09 ·  中国 湖南 长沙 电信
初级用户
★★
积分 182
发帖 75
注册 2006-10-11 00:10
19年会员
UID 65220
性别 男
状态 离线
请问下啊..
start 旁边的 "" 是什么意思啊?
15 发表于 2006-11-07 02:11 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线

启动另一个窗口运行指定的程序或命令。

START




"title" 在窗口标题栏中显示的标题。
  ……

  表示引用了一个窗口标题,由 "title" 演变而来,用""而不用"title"是start命令的一个技巧,常用于以下情形:
  1、无法获取准确的窗口标题的时候;
  2、当要打开的文件名或所在路径带空格、必须用引号把路径括起来的时候,防止 start "文件路径" 的格式把引号里的内容误认为是窗口标题;
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
论坛跳转: