bat命令 实践

1. 调用其他程序时,对文件的大小写不敏感,文件后缀也可忽略
       如:start LeapFTP.exe  与 start leapftp 效果一样,都是运行“LeapFTP.exe”文件
       每行的开头的字符串会自动查找程序来运行,还可用双引号引起来(文件名或目录名含空格时必须用)
       如:"D:\Program Files\Leap FTP.exe"
       "LeapFTP.exe" 可正常运行文件,start "" "LeapFTP.exe" 也可以正常运行文件(注意,第一个参数是窗口显示的标题)
    3. copy C:\test\*.* D:\back  (复制C盘test文件夹的所有文件(不包括文件夹及子文件夹里的东西)到D盘的back文件夹)
    4. dir c:\*.* > a.txt (将c盘文件列表写入 a.txt 中)
    5.  > 生成文件并写入内容(如果有这文件则覆盖),  >> 文件里追加内容
    6. md d:\aa (创建文件夹)
    7. 在命令末尾加上“>NUL 2>NUL”,表示隐蔽返回信息。
    8. 等待用户输入: set /p 变量名=屏幕显示信息。  Sample:set /p pass=请输入密码:
    9. 让用户按回车退出
       小技巧(替代pause),文件的最后一句:set /p tmp=操作结束,请按回车键退出...
    10.设置标题: title JDK安装
    11.设置屏幕显示颜色,如绿色: color 0a
    12.清屏: cls
    13.查看自己的IP:
       for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
       echo %ip% (这时的 %ip% 就是自己的IP地址)

    14. 修改文件的更新日期
        copy 文件名+,,>nul  (修改为当前时间,如果要修改为指定时间,先修改系统时间,再改回系统时间)
    15. 修改文件的后缀名
        ren C:\test\*.jpg *.JPG
	for /r %%c in (*.jpg) do (ren %%c *.JPG)  :: 修改当前目录下的所有文件的后缀名,包括子目录的
    16. 修改文件的文件名
        rename test.jpg test2.JPG
        rename *.jpg *.888.JPG
    17. 查看DNS、IP、Mac等
        1) Win98: winipcfg
        2) Win2000以上: Ipconfig /all
        3) NSLOOKUP
    18.查看IP上的共享资源,就可以
        net view 192.168.10.8
    19.共享
        A.查看你机器的共享资源: net share
        B.手工删除共享
          net share 共享资源名称$ /d
          注意$后有空格。
        C.增加一个共享:
          net share mymovie=e:\downloads\movie /users:3
          mymovie 共享成功。 同时限制链接用户数为3人。
    20.打开某网站
          start iexplore.exe http://www.baidu.com
实例:
    1. 生成 reg 文件,运行它,再删除它
        echo "更改windows安装文件的路径"
        echo Windows Registry Editor Version 5.00 > c:\setupreg.reg
        echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup] >> c:\setupreg.reg
        echo "ServicePackSourcePath"="D:\\Win2003\\" >> c:\setupreg.reg
        echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg
        :: 写入注册表
        regedit /S c:\setupreg.reg
        :: 删除注册表文件
        del c:\setupreg.reg

    2.调用了exe文件,结束后没有关闭,解决方式
       用start命令运行文件,如:
       start LeapFTP.exe 192.168.0.100

    3.设置系统环境变量
      :: 有这个环境变量,则不需再设置,直接结束
      if not "%JAVA_HOME%" == "" exit
      :: 设置环境变量的地址
      set inputJavaHome=%cd%\jdk1.6.0_07
      :: 设置环境变量,也可以设置当前用户的变量
      set EnvironmentHome=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
      echo 正在设置环境变量,请稍候......
      reg add "%EnvironmentHome%" /v JAVA_HOME /t reg_sz /d "%inputJavaHome%" /f
      reg add "%EnvironmentHome%" /v ClassPath /t reg_sz /d ".;%%JAVA_HOME%%\lib" /f
      reg add "%EnvironmentHome%" /v Path /t reg_sz /d "%%JAVA_HOME%%\bin;%Path%" /f]
      :: 刷新,令环境变量生效
      taskkill /f /im explorer.exe >nul
      start "" "explorer.exe"

    4.隐藏某目录的所有文件及文件夹
      cd /d 要隐藏的目录(如:D:)
      for /f "usebackq delims=" %%A in (`dir /a /b`) do (attrib "%%A" -r +h -s)

    5.在批处理中使用密码。密码为admin,输入正确,跳转到next1 ,若输入密码错误3次,则锁屏。。
      @echo off
      set num=0
      :11
      set /p pass=请输入密码:
      if "%pass%"=="admin" goto next1
      set /a num=%num% + 1
      if %num%==3 goto no1
      goto 11
      :no1
      %windir%\system32\rundll32.exe user32.dll,LockWorkStation
      goto 11
      :next1
      echo 密码正确,执行下面的程式
      pause
    6.让系统断断续续地鸣叫
      @echo off
      :begin
      :: 发出鸣叫(“”实际就是ASCII码值为7的特殊字符(蜂鸣键beep)
      echo 
      :: 让程序暂停一小阵子
      ping -n 1 -l 1 127.1>nul
      goto :begin

    7.将 FAT 卷转换成 NTFS
       利用“CONVERT.exe”进行,解析如下:
        CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X]
          volume      指定驱动器号(后面跟一个冒号)、装载点或卷名。
          /FS:NTFS    指定要被转换成 NTFS 的卷。
          /V          指定 Convert 应该用详述模式运行。
          /CvtArea:filename
                      将根目录中的一个接续文件指定为NTFS 系统文件的占位符。
          /NoSecurity 指定每个人都可以访问转换的文件和目录的安全设置。
          /X          如果必要,先强行卸载卷。该卷的所有打开的句柄则无效。

        程序如下:
        @ ECHO OFF
        @ ECHO.
        @ ECHO.                               说   明
        @ ECHO --------------------------------------------------------------------------
        @ ECHO NTFS是一种磁盘格式。该格式能存放大于4G的单个文件(如高清电影文件),并可对
        @ ECHO 文件夹进行加密,但有个缺点是DOS下无法访问。建议D盘及其后的盘使用NTFS格式,
        @ ECHO C盘如非必要可以不转换,FAT32与NTFS这两种格式的读写速度几乎是没有差别的。
        @ ECHO --------------------------------------------------------------------------
        @ ECHO.
        convert c: /fs:ntfs
        :: D盘也转成 NTFS
        convert d: /fs:ntfs

    8. 获取我的文档
        SET SF="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
        FOR /F "tokens=2,*" %%I IN ('REG QUERY %SF% /v Personal 2^>NUL^|FIND /I "Personal"') DO SET "myDoc=%%~J"
        :: 复制文件到我的文档
        XCOPY /D /E /R /Y /C  "%cd%\test.txt" "%myDoc%\test\"

@echo off    //不显示shell的命令。
Setlocal         //环境改变只适用于这个文件。
%OS%       //为当前的操作系统。
Rem              //注释一行文本。
Goto 标签   //改变执行顺序,去标签位置.
:标签           //定义一个标签。
Set 变量名=值   //定义变量
Not         //取反
Netstat –na   //显示当前被点用的端口.
%0  %1  %2  //用于表示批处理文件的参数0为命令,共1-9个参数。
Shift                     //用于向前一个参数,原1变0,原2变1.每调用一次shift向前一移动一位。
Call               //调用其他批处理文件或命令。
Start 命令 参数   //指示出在另一个窗口中开始运行命令。




=============================================================
:: 自动设置Java环境变量

@echo off
IF EXIST %1\bin\javaw.exe (
rem 如输入正确的 JDK 安装目录,开始设置环境变量
@setx JAVA_HOME %1
@setx path %path%;%JAVA_HOME%\bin
@setx classpath %classpath%;.
@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar
@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar
@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar
@echo on
@echo JDK 环境参数设置完毕,正常退出。
) ELSE (
IF "%1"=="" (
rem 如没有提供安装目录,提示之后退出
@echo on
@echo 没有提供 JDK 的安装目录,不做任何设置,现在退出环境变量设置。
) ELSE (
rem 如果提供非空的安装目录但没有bin\javaw.exe,则指定的目录为错误的目录
@echo on
@echo 非法的 JDK 的安装目录,不做任何设置,现在退出环境变量设置。
)
)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值