• bat 命令 常用配置及其用法


    1.初衷:

    bat 批处理文件:当我懒得一个个操作的时候,可以把若干东西放到一个文件里面,开机运行或者需要的时候手动运行、节省时间。

    2.命令集说明

    2.1 常用命令

    2.1.0 help

    命令 /?      help 命令
    type /? >>tmp.txt  (把 type 命令的帮助信息写入到tmp.txt文件里)

    2.1.1 @  ( 仅影响当前行, 相对于echo off 来说,是遮住了一行,而不是挡住了一片 )

    不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
    eg 关闭回显(之后的指令不再显示,只输出执行结果):@echo off

    2.1.2 echo

    打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。

    echo 显示当前回显设置

    echo on   打开回显,即显示指令输入及其输出结果

    echo off    隐藏后面的所有指令及其输出结果( 在遇到 echo  on  之前 )

    echo 'hello'   单纯输出字符串

    2.1.3 rem    (可用::,: 代替rem, :Here is the description , ::Here is the description)

    rem   注释命令  :  @Rem Here is the description

    2.1.4 pause

    pause     暂停,使程序挂起

    @echo off
    :begin
    copy a:*.* d:\back
    echo Please put a new disk into driver A
    pause
    goto begin

    ,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理

    2.1.5 call

    call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]           指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名

    一个批处理程序调用另一个批处理程序,并且不终止父批处理程序

    2.1.6 start 

    启动单独的“命令提示符”窗口来运行指定程序或命令    

    start ["title"] [/dPath] [/min] [/max] [{/separate |/shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}][/wait] [/B] [FileName] [parameters]

    "title" 指定在“命令提示符”窗口标题栏中显示的标题。

    /dpatch 指定启动目录。

    /i 将 Cmd.exe 启动环境传送到新的“命令提示符”窗口。

    /min 启动新的最小化窗口。

    /max 启动新的最大化窗口。

    /separate 在单独的内存空间启动 16 位程序。

    /shared 在共享的内存空间启动 16 位程序。

    /low 以空闲优先级启动应用程序。

    /normal 以一般优先级启动应用程序。

    /high 以高优先级启动应用程序。

    /realtime 以实时优先级启动应用程序。

    /abovenormal 以超出常规优先级的方式启动应用程序。

    /belownormal 以低出常规优先级的方式启动应用程序。

    /wait 启动应用程序,并等待其结束。

    /b 启动应用程序时不必打开新的“命令提示符”窗口。除非应用程序启用 CTRL+C,否则将忽略 CTRL+C 操作。使用 CTRL+BREAK 中断应用程序。

    2.1.7 choice

     choice 使用此命令可以让用户输入一个字符,从而运行不同的命令 

    @echo off
    choice /c dme
    if errorlevel 3 goto defrag
    if errorlevel 2 goto mem
    if errotlevel 1 goto end

    :defrag
    echo '1'
    goto end

    :mem
    echo '2'
    goto end

    :end
    echo good bye

    pause

    2.1.8 if

    if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式

    if "参数" == "字符串"     if "%1"=="a" format a:

    if exist config.sys edit config.sys              if exist config.sys type config.sys

    if errorlevel 2 goto x2

    else 连用

     if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )

    2.1.9 for

    循环操作

    2.2 组合命令

    2.2.1 & 

    同时执行多条命令,而不管命令是否执行成功          dir z: & dir c:\Ex4rch

    2.2.2 &&

    同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令       dir z: && dir c:\Ex4rch

    2.2.3  ||

    同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令          dir fdImg || start website.txt

    2.3  管道命令

    2.3.1  |           

    第一条命令 | 第二条命令 [| 第三条命令...]

    第一条命令的结果作为第二条命令的参数来使用           netstat -n -p tcp|find ":49264">D:\IP.log

    2.3.2  >、>>

    输出重定向命令

    将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中

    echo hello world>website.txt

    2.4 系统参数  ( 用户及其设置不同值不同 )

    %SystemRoot% === C:WINDOWS (%windir% 同样)
    %ProgramFiles% === C:Program Files


    %USERPROFILE% === C:Documents and SettingsAdministrator (子目录有“桌面”,“开始菜单”,“收藏夹”等)             

    如: 访问我桌面的某个文档       start %USERPROFILE%desktopwebsite.txt         

     C:UsersadminDesktop>start C:Usersadmindesktopwebsite.txt

    %APPDATA% === C:Documents and SettingsAdministratorApplication Data
    %TEMP% === C:DOCUME~1ADMINI~1LOCALS~1Temp (%TEM% 同样)
    %APPDATA% === C:Documents and SettingsAdministratorApplication Data
    %OS% === Windows_NT (系统)
    %Path% === %SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem (原本的设置)
    %HOMEDRIVE% === C: (系统盘)
    %HOMEPATH% === Documents and SettingsAdministrator

    3.实际经验分享

    3.1 .bat 文件乱码问题

    新建一个txt文件   -   文件”=》“另存为”,  在编码的时候选择“ANSI”   -   更改为 .bat 后缀  或者 .cmd 

    3.2 批量打开程序

    @echo off

    start C:UsersadminDesktopmark.txt
    start C:UsersadminDesktop oute.txt
    start C:UsersadminDesktopstyleLogin.txt

    start C:"Program Files (x86)"TencentQQBinQQScLauncher.exe
    start C:"Program Files (x86)"TencentWeChatWeChat.exe
    start C:UsersadminAppDataRoaming360se6Application360se.exe

    start C:UsersadminDesktop ext.xlsx

    echo "hello myboy"

    pause

    扩展:

    开机启动目录

    C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup

    3.3 创建目录文件并比较

    dir*.exe>exeback.txt & dir *.dll>dllback.txt

    fc exeback.txt exeback1.txt>diff.txt

    3.4 传递参数给批处理文件

     %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。

    变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用 %1 到 %9 顺序表示。

      call test2.bat "hello" "haha" (执行同目录下的“test2.bat”文件,并输入两个参数)
    在“test2.bat”文件里写:
    echo %1 (打印: "hello")
    echo %2 (打印: "haha")
    echo %0 (打印: test2.bat)
    echo %19 (打印: "hello"9)


    4.常用 api

    md d:aa  创建文件夹

    set /p pass=请输入密码      等待用户输入、同时设置变量 ( 附带 pause 作用 )

    color 0a     设置控制台颜色   ( 背景色 0   文本颜色  a   ,  both : 0-f )

    cls : 清屏

    start C:UsersadminAppDataRoaming360se6Application360se.exe http://www.baidu.com    打开浏览器 并访问网站

    修改文件的文件名    rename test.jpg test2.JPG         rename *.jpg *.888.JPG

    ren 原文件名 新文件名 重命名文件名
    tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称
    type 文件名 显示文本文件的内容

    tasklist >list.txt   将所有进程保存到list文件中(默认保存到当前目录)

    5. 查看内置命令帮助指令

    ver /? cmd /? set /? rem /?
    if /? echo /? goto /? for /?
    shift /? call /? type /? find /?
    findstr /? copy /?

    6.字符串处理

    6.1  割字符串,以查看时间为例

     %源字符串:~起始值,截取长度%  (起始值从0开始;截取长度是可选的,如果省略逗号和截取长度,将会从起始值截取到结尾;
    截取长度如果是负数,表示截取到倒数第几个。)
     "%time%"  显示如:"11:04:23.03" (完整的时间"hh:mm:ss.tt")
    "%time:~0,5%" 显示"hh:mm"(即"11:04"),其中0表示从右向左移位操作的个数,5表示从左向右移位操作的个数
    "%time:~0,8%" 显示标准时间格式"hh:mm:ss"(即"11:04:23",前8个字符串)
    "%time:~3,-3%"显示"mm:ss"(即从第4个开始,截去最后3个的字符串)
    "%time:~3%" 显示"04:23.03"(即去掉前4个字符串)
    "%time:~-3%" 显示".tt"(即最后3个字符串)
    上面的字串分割格式,也可以用于其它地方,如目录路径:"%cd:~0,10%"

    6.2  替换字符串

           set a="abcd1234"
    echo %a% 显示:"abcd1234"
    set a=%a:1=kk% 替换“1”为“kk”
    echo %a% 显示:"abcdkk234"

    6.3 字符串合并

      set str1=%str1%%str2%    (合并 str1 和 str2)

    6.4  计算字符串长度

    没有现成的函数。如下程序利用 goto形成循环,不断将字符串截短1,并记录截短的次数,到字符串变成空时的次数即长度。
    set testStr=This is a test string
    :: 将 testStr 复制到str,str 是个临时字符串
    set str=%testStr%
    :: 标签,用于goto跳转
    :next1
    :: 判断str是不是空,如果不是则执行下边的语句
    if not "%str%"=="" (
    :: 算术运算,使num的值自增1,相当于num++或者++num语句
    set /a num+=1
    :: 截取字符串,每次截短1
    set "str=%str:~1%"
    :: 跳转到next1标签: 这里利用goto和标签,构成循环结构
    goto next1
    )
    :: 当以上循环结构执行完毕时,会执行下边的语句
    echo testStr=%testStr%
    echo testStr的长度为:%num%

    7. 文件处理

     清空文件夹   del          del  /s /q test         ( 彻底删除 指定文件 即  清空文件夹)

    删除文件夹   rd  rmdir          rd   /s /q test     直接删除整个文件夹

    新建文件夹     md  mkdir   ::md %cd%hellocd      mkdir %cd%hellocd

    相关指令含义

       /S  除目录本身外,还将删除指定目录下的所有子目录
    /Q 安静模式,带 /S 删除目录树时不要求确认

    last. 相关文档

    windows bat脚本编写

    Bat命令学习

    BAT 批处理脚本 教程

  • 相关阅读:
    asp搜索两个以上的词的原理
    ASP连接MYSQL数据库
    一个用ASP生成html的新方法
    文本框随文本的长度而增长
    ASP实现https和http之间转化
    ASP根据IP来判断跳转页面
    Access数据库在线压缩的实现方法
    aspjpeg 半透明描边的实现函数
    Session对象的集合
    react tsx
  • 原文地址:https://www.cnblogs.com/justSmile2/p/10619593.html
Copyright © 2020-2023  润新知