批处理如何根据输入的内容来运行不同的命令
我想根据输入的内容来进入不同盘符,比如说用户输入h,就执行命令"h:";比如说他输入z,就执行"z:"。一般我们都是设置choice来跳转到不同的命令,可是如果是以上的问...
我想根据输入的内容来进入不同盘符,比如说用户输入h,就执行命令"h:";比如说他输入z,就执行"z:"。一般我们都是设置choice来跳转到不同的命令,可是如果是以上的问题的话,从A到Z我岂不是要写26条命令?能不能有比较简单的方只用一条语言就搞定的?能不能说根据输入的内容来替换命令的内容,然后再执行。。。谢谢啦!!
展开
3个回答
展开全部
楼主有一个观点好像说的我不能赞同,那就是批处理命令可以写得详细一些而尽量使运行时方便,当然如在满足运行方便同时又使代码简单当然是写批处理者所追求的
现在的命令行,已经用 set/p 完全取代了choice了,并且更方便,更优越,本身set/p 变量名=
之后可显示要提示的信息(当然如提示信息太多或要分多行,可以在此之前用echo命令让它显示出来)然后可以接受键盘输入的回车之前的多个字符,也就是说你可以输入一条完整的命令如
.....
set /p aa=请输入命令:
copy a.txt b.txt ;本行假定运行时输入的
.....
%aa%
....
这里的%aa%就代替了运行时输入的copy a.txt b.txt 。你说的转不同盘符就更不在话下了,当然一般都不会这么用来输入完整的命令,不然要批处理干什么?更多时候用在GOTO上,那么使用时只需输入一个数或字母就能执行一条或多条命令如:
echo 1 ...
echo 2 ...
echo 3 ...
...
echo.
set /p aa=请选择 (1-10)回车:
goto b%aa%
:b1
...系列命令...
:b2
...系列命令...
:b3
...系列命令...
现在的命令行,已经用 set/p 完全取代了choice了,并且更方便,更优越,本身set/p 变量名=
之后可显示要提示的信息(当然如提示信息太多或要分多行,可以在此之前用echo命令让它显示出来)然后可以接受键盘输入的回车之前的多个字符,也就是说你可以输入一条完整的命令如
.....
set /p aa=请输入命令:
copy a.txt b.txt ;本行假定运行时输入的
.....
%aa%
....
这里的%aa%就代替了运行时输入的copy a.txt b.txt 。你说的转不同盘符就更不在话下了,当然一般都不会这么用来输入完整的命令,不然要批处理干什么?更多时候用在GOTO上,那么使用时只需输入一个数或字母就能执行一条或多条命令如:
echo 1 ...
echo 2 ...
echo 3 ...
...
echo.
set /p aa=请选择 (1-10)回车:
goto b%aa%
:b1
...系列命令...
:b2
...系列命令...
:b3
...系列命令...
展开全部
可以啊,用变量存用户输入的内容,在用变量即可
@echo off
set /p panfu=请输入要进入的盘符:
rem 下面这句切换到用户输入的盘
cd /d %panfu%
echo 已切换到%panfu%
rem 运行在那个盘下要执行的命令,如dir
pause>nul
@echo off
set /p panfu=请输入要进入的盘符:
rem 下面这句切换到用户输入的盘
cd /d %panfu%
echo 已切换到%panfu%
rem 运行在那个盘下要执行的命令,如dir
pause>nul
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
set /p drivename=请输入你要打开的盘的盘的标签:
:checkdrive
for %%a in (c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:) do (vol %%a 2>nul)|find "%drivename%"&&set drive=%%a
if not defined drive echo 没有检查到你的盘,请检查你的盘是否插好……&pause>nul&goto :checkdrive else goto :go
:go
这个程序是我用来实现优盘自动化的程序中的函数之一,你可以用它来定位你盘
:checkdrive
for %%a in (c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:) do (vol %%a 2>nul)|find "%drivename%"&&set drive=%%a
if not defined drive echo 没有检查到你的盘,请检查你的盘是否插好……&pause>nul&goto :checkdrive else goto :go
:go
这个程序是我用来实现优盘自动化的程序中的函数之一,你可以用它来定位你盘
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询