bat心得

来源:互联网 发布:动易cms后台登录密码 编辑:程序博客网 时间:2024/05/01 19:32
1.关于带空格的路径

想在我的文档中新建个名字为hello的文件夹
------------------------------------
md C:\Documents and Settings\Administrator\My Documents\hello      (No)
md "C:\Documents and Settings\Administrator\My Documents\hello" (yes)
------------------------------------
小问题:你得为带空格的路径加上英文双引号

2.关于bat命令有时候错误
想定时启动一首歌曲
------------------------------------
at 3:35 f:\music\老男孩.mp3 (NO)
at 3:35 /interactive f:\music\老男孩.mp3 (Yes)
------------------------------------
小问题:at命令是很犀利的,但是没有“交互”(interactive)总是有点欠缺,就像是人不交
流就没有进步一样。

3.关于选项菜单的定制
想要做个选项菜单
------------------------------------
@echo off
:main
cls
echo 1.计算器 2.记事本 3.退出
set /p i=input:
if %i%==1 goto jsq
if %i%==2 goto jsb
if %i%==3 goto tc
echo error & ping /n 2 127.1 > nul
goto main
:jsq
start calc
goto main
:jsb
start notepad
goto main
:tc
exit
(No)
------------------------------------
那些if命令太长了,不如改为 call ch%i%,对应的jsq,jsb,tc,改为ch1,ch2,ch3。(Yes)
小问题:这个其实都没有错,但是我们都会有所选择,简单才是最好的。

4.关于taskkill有时杀不掉进程
想关闭qq,qq.exe
------------------------------------
taskkill /f /im qq.exe (No)
taskkill /f /t /im qq.exe (Yes)
------------------------------------
小问题:qq.exe有其子进程txplatform.exe保驾护航,所以一定要加上/t,终止其子进程。现在不少
的程序都不是单一进程了,如果出现结束不了的时候,不妨加个 /t,或者干脆用到taskkill就直
接 taskkill /f /t /im,一了百了。

5.易常犯的几种sb错误
5.1 if判断句的“==”与set设置中的“=”混淆
------------------------------------
if a=b (no)
if a==b (yes)
------------------------------------
5.2 双百分号写成单百分号
------------------------------------
for %a in (1) do echo %a (no,在cmd里无误,bat里参数不能这么写)
for %%a in (1) do echo %%a (yes)
------------------------------------
5.3 在&之前设置变量时多一个空格
------------------------------------
set 1=1 & set 2=2(no)
set 1=1& set 2=2(yes)
------------------------------------
5.4空变量没有双引号:
------------------------------------
if %nul%==0 echo 不可能 (no)
if "%nul%"=="0" echo 不可能 (yes)
------------------------------------

5.5if ...else...

这里if else必须写在同一行。

语句中允许嵌套。

0 0