注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

chunwaihome 的博客

 
 
 

日志

 
 

Dos Command進階篇  

2009-10-19 10:39:32|  分类: DOS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  •  %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*命令行传递给批处理的参数

%0 是批处理文件本身,%1 第一个参数,%9 第九个参数,%* 从第一个参数开始的所有参数
在C盘根目录新建test.bat,内容如下:
@echo off

echo %0echo %1echo %2echo %*               (%0echo %1echo %2echo %*   這句中間的echo文字是沒有特別含意的,您也可將它改aaa 或bbb)
运行cmd,输入 c:\test.bat "/a" /b /c /d            ("/a" /b /c /d中間需以空格作分隔)

得出結果如下:

c:\test.batecho "/a"echo /becho "/a" /b /c /d  

註:

c:\test.batecho是批處理文作本身%0echo%

"/a"echo 是 第一个参数%1echo%

becho 是 第二个参数%2echo%

"/a" /b /c /d  是代表所有参数%*


修改test.bat内容如下
@echo off

echo %1echo %~1echo %0echo %~f0echo %~d0echo %~p0echo %~n0echo %~x0echo %~s0echo %~a0echo %~t0echo %~z0
再运行cmd,输入 c:\test.bat "/a" /b /c /d可以参照 call/? 或 for/? 看出每个参数的含意注意这里可以对文件进行

日期比较和大小比较
echo load "%%1" "%%2">c:\test.txt生成的文件内容为 load "%1" "%2"批处理文件里,用这个格式把命令行参数输出到文件

  • Set设置变量
    引用变量可在变量名前后加 % ,即 %变量名%
                
                 #显示所有以p开头的变量,要是一个也没有就设errorlevel=1

 set       #显示目前所有可用的变量,包括系统变量和自定义的变量
 echo %SystemDrive%   #显示系统盘盘符。系统变量可以直接引用
set p       #显示所有以p开头的变量,要是一个也没有就设errorlevel=1
 set p=aa1bb1aa2bb2   #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2
 echo %p%  #显示变量p代表的字符串,即aa1bb1aa2bb2
 echo %p:~6%   #显示变量p中第6个字符以后的所有字符,即aa2bb2
 echo %p:~6,3%   #显示第6个字符以后的3个字符,即aa2
 echo %p:~-2%   #显示最后面的2个字符,即b2
 echo %p:aa=c%   #用c替换变量p中所有的aa,即显示c1bb1c2bb2
 echo %p:*bb=c%     #第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2
 set /a p=39    #设置p为数值型变量,值为39
 set /a p=39/10   #支持运算符,有小数时用去尾法,39/10=3.9,去尾得3
 set /p a= 讓你設命令列的使用者輸入變數值,echo %a%能讀出設定值。
 set p=   #取消p变量
   
   
   

  • start批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令

 start explorer d:\  调用图形界面打开D盘

 
   

  • call批处理中调用另外一个批处理的命令

 

  • choice (外部命令)选择命令让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……win98里

    是choice.comwin2000pro里没有,可以从win98里拷过来win2003里是choice.exechoice /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
  •  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" %* ,如果该关联已经被破坏,可以运行 command.com ,再输入这条命令

 assoc .jpg  .jpg=ACDC_JPG
 assoc.avi  .avi=avifile
 assoc.exe  .exe=exefile
 ftype acdc_jpg  acdc_jpg="c:\program files\acdsee32.exe" /
 ftype avifile  avifile = "c:\program files\mplayerc.exe" "%1"
 ftype exefile  exefile = "%1" %*

  • 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一般用处不大,在当前目录名不确定时,会有点帮助

  • subst (外部命令)映射磁盘。
    subst z: \\server\d     #这样输入z:就可以访问\\server\d了
    subst z: /d             #取消该映射
    subst                   #显示目前所有的映
  • xcopy (外部命令)文件拷贝

 xcopy \orders\*.* B:/S  /s表示複製所有的目錄和子目錄中的檔案,但不複製空的子目錄
 xcopy *.* B:  只複製現行目錄上的所有檔案,而不複製子目錄中的檔案。
 xcopy a:*.* b:/s  可複製現行目錄和子目錄中之所有檔案
   


xcopy d:\mp3 e:\mp3 /s/e/i/y复制 d:\mp3 文件夹、所有子文件夹和文件到 e:\ mp3,覆盖已有文件。加 /i 表示如果 e:\ 没有 mp3 文件夹就自动新建一个,否则会有询问。

39 一些不常用的内部命令
>& 将一个句柄的输出写入到另一个句柄的输入中
<& 从一个句柄读取输入并将其写入到另一个句柄输出中shift 命令行传递给批处理的参数不止9个时,用以切换参数color 设置cmd窗口的显示颜色
pormpt 更改命令提示符号,默认都是 盘符:\路径\> ,如 c:\>

  • format (外部命令)格式化硬盘

format c: /q/u/autotest

/q表示快速格式化,/autotest表示自动格式化,不需要按 Y 确认/u表示每字节用 

  • fdisk (外部命令)硬盘分区win2000不带


该命令win98里的fdisk不支持80G以上大硬盘,winme里的支持fdisk/mbr重建硬盘分区表,一般用于清除引导区病毒、还

原精灵注意使用该命令不能从硬盘启动,必须软驱或光驱启动后直接运行

  • ping (外部命令)


ping -l 65500 -t 192.168.1.200不停的向192.168.1.200计算机发送大小为65500byte的数据包
ping -n 10 127.0.0.1>nulping自己10次,可用于批处理延时10秒

  •  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服务

  评论这张
 
阅读(613)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017