P处理命令整理(4)

34 choice (外部命令)
选择命令
让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……
win98里是choice.com
win2000pro里没有,可以从win98里拷过来
win2003里是choice.exe
choice /N /C y /T 5 /D y>nul
延时5秒
下面是个 choice 语句的例子
@echo off
rem 以下在win2000pro运行通过,从win98里拷的chioce.com文件
choice /c:abc aaa,bbb,ccc
if errorlevel 3 goto ccc
if %errorlevel%==2 goto bbb
if errorlevel==1 goto aaa
rem 必须先判断数值高的返回码
rem 可以看到 errorlevel 值的判断有3种写法,有时某种写法不好用,可以用另外的写法
rem 直接运行chioce相当于运行choice /c:yn
:aaa
echo aaa
goto end
:bbb
echo bbb
goto end
:ccc
echo ccc
goto end
:end
 
 
35 assoc 和 ftype
文件关联
assoc 设置'文件扩展名'关联,关联到'文件类型'
ftype 设置'文件类型'关联,关联到'执行程序和参数'
当你双击一个.txt文件时,windows并不是根据.txt直接判断用 notepad.exe 打开
而是先判断.txt属于 txtfile '文件类型'
再调用 txtfile 关联的命令行 txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
可以在"文件夹选项"→"文件类型"里修改这2种关联
assoc               #显示所有'文件扩展名'关联
assoc .txt          #显示.txt代表的'文件类型',结果显示 .txt=txtfile
assoc .doc          #显示.doc代表的'文件类型',结果显示 .doc=Word.Document.8
assoc .exe          #显示.exe代表的'文件类型',结果显示 .exe=exefile
ftype               #显示所有'文件类型'关联
ftype exefile       #显示exefile类型关联的命令行,结果显示 exefile="%1" %* 
assoc .txt=Word.Document.8
设置.txt为word类型的文档,可以看到.txt文件的图标都变了
assoc .txt=txtfile
恢复.txt的正确关联
 
ftype exefile="%1" %*
恢复 exefile 的正确关联
如果该关联已经被破坏,可以运行 command.com ,再输入这条命令
 
      
36 pushd 和 popd
切换当前目录
@echo off
c: & cd\ & md mp3           #在 C:\ 建立 mp3 文件夹
md d:\mp4                   #在 D:\ 建立 mp4 文件夹
cd /d d:\mp4                #更改当前目录为 d:\mp4
pushd c:\mp3                #保存当前目录,并切换当前目录为 c:\mp3
popd                        #恢复当前目录为刚才保存的 d:\mp4
一般用处不大,在当前目录名不确定时,会有点帮助
 
     
37 for
循环命令
这个比较复杂,请对照 for/? 来看
for %%i in (c: d: e: f:) do echo %%i
依次调用小括号里的每个字符串,执行 do 后面的命令
注意%%i,在批处理中 for 语句调用参数用2个%
默认的字符串分隔符是"空格键","Tab键","回车键"
for %%i in (*.txt) do find "abc" %%i
对当前目录里所有的txt文件执行 find 命令
for /r . %%i in (*.txt) do find "abc" %%i
在当前目录和子目录里所有的.txt文件中搜索包含 abc 字符串的行
for /r . %%i in (.) do echo %%~pni
显示当前目录名和所有子目录名,包括路径,不包括盘符
for /r d:\mp3 %%i in (*.mp3) do echo %%i>>d:\mp3.txt
把 d:\mp3 及其子目录里的mp3文件的文件名都存到 d:\mp3.txt 里去
for /l %%i in (2,1,8) do echo %%i
生成2345678的一串数字,2是数字序列的开头,8是结尾,1表示每次加1
for /f %%i in ('set') do echo %%i
对 set 命令的输出结果循环调用,每行一个
for /f "eol=P" %%i in ('set') do echo %%i
取 set 命令的输出结果,忽略以 P 开头的那几行
for /f %%i in (d:\mp3.txt) do echo %%i
显示 d:\mp3.txt 里的每个文件名,每行一个,不支持带空格的名称
for /f "delims=" %%i in (d:\mp3.txt) do echo %%i
显示 d:\mp3.txt 里的每个文件名,每行一个,支持带空格的名称
for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a
对 dir 命令的结果,跳过前面5行,余下的每行取第4列
每列之间的分隔符为默认的"空格"
可以注意到 dir 命令输出的前5行是没有文件名的
for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do (
        echo %%a
        echo %%b
        echo %%c
        )
对 date /t 的输出结果,每行取1、2、3列
第一列对应指定的 %%a ,后面的 %%b 和 %%c 是派生出来的,对应其它列
分隔符指定为 - 和"空格",注意 delims=- 后面有个"空格"
其中 tokens=1,2,3 若用 tokens=1-3 替换,效果是一样的
for /f "tokens=2* delims=- " %%a in ('date /t') do echo %%b 
取第2列给 %%a ,其后的列都给 %%b
 
           
38 subst (外部命令)
映射磁盘。
subst z: \\server\d         #这样输入z:就可以访问\\server\d了
subst z: /d                 #取消该映射
subst                       #显示目前所有的映时
 
           
39      xcopy (外部命令)
文件拷贝
xcopy d:\mp3 e:\mp3 /s/e/i/y
复制 d:\mp3 文件夹、所有子文件夹和文件到 e:\ ,覆盖已有文件
加 /i 表示如果 e:\ 没有 mp3 文件夹就自动新建一个,否则会有询问
 
           
40 一些不常用的内部命令
>& 将一个句柄的输出写入到另一个句柄的输入中
<& 从一个句柄读取输入并将其写入到另一个句柄输出中
shift 命令行传递给批处理的参数不止9个时,用以切换参数
color 设置cmd窗口的显示颜色
pormpt 更改命令提示符号,默认都是 盘符:\路径\> ,如 c:\>
 
           
41 format (外部命令)
格式化硬盘
format c: /q/u/autotest
/q表示快速格式化,/autotest表示自动格式化,不需要按 Y 确认
/u表示每字节用 F6 覆盖硬盘数据,使其不可用软件恢复
format c: /c
格式化C盘,并检测坏道
 
           
42 fdisk (外部命令)
硬盘分区
win2000不带该命令
win98里的fdisk不支持80G以上大硬盘,winme里的支持
fdisk/mbr
重建硬盘分区表,一般用于清除引导区病毒、还原精灵
注意使用该命令不能从硬盘启动,必须软驱或光驱启动后直接运行
 
          
43 ping (外部命令)
ping -l 65500 -t 192.168.1.200
不停的向192.168.1.200计算机发送大小为65500byte的数据包
ping -n 10 127.0.0.1>nul
ping自己10次,可用于批处理延时10秒
 
           
44 SC (外部命令)
服务控制命令
sc create aaa displayname= bbb start= auto binpath= "C:\WINDOWS\System32\alg.exe"
创建服务,服务名称aaa,显示名称bbb,启动类型:自动
可执行文件的路径"C:\WINDOWS\System32\alg.exe"
sc description aaa "ccc"
更改aaa的描述为ccc
sc config aaa start= disabled binpath= "C:\WINDOWS\System32\svchost.exe -k netsvcs"
更改aaa的启动类型:已禁用
更改aaa的可执行文件的路径"C:\WINDOWS\System32\svchost.exe -k netsvcs"
sc config aaa start= demand displayname= ddd
更改aaa的启动类型:手动
更改aaa的显示名称ddd
sc start aaa
启动aaa服务
sc stop aaa
停止aaa服务
sc delete aaa
删除aaa服务
SC命令微软帮助文档http://www.microsoft.com/technet/prodtechnol/windowsserver20
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值