偶尔会有做点自动化的需求,
以往每次写批处理文件都是现查。
今天把用到的批处理常用操作做个记录。


  • 1.批处理文件的调用与传参

    a.bat
    ./b.bat Hello Wrold
    
    REM 或
    REM call b.bat Hello Wrold
    b.bat
    set param1=%1
    set param2=%2
    echo %param1%
    echo %param2%

    以上将分别打出HelloWorld



  • 2.字符串拼接与截取

    b.bat
    set greeting=%param1%-%param2%
    echo %greeting%

    以上将输出: Hello-World


  • 3.字符串截取

    截取命令格式为

    SomeText:~FromIndex:Count

    截取示例:

    set name=CoderMonkey
    echo %name:~0,4%

    以上将输出:Code

    注:可以反向截取(FromIndex < 0)


  • 4.字符串替换

    替换命令格式为

    SomeText:source=target

    替换示例:

    set name=CoderMonkey
    echo %name:Monkey=Gorilla%

    以上将输出:CoderGorilla



  • 5.常用的变量

    %cd%        current directory,当前目录
    %date%     日期
    %time%     时刻,包含毫秒

  • 6.创建与删除文件夹

    mkdir "foldername"

    创建一个文件夹

    rmdir "folder_path"

    删除指定文件夹

    rmdir /s /q "folder_path"

    /s 表示删除指定目录及其下的子目录和文件
    /q 表示静默处理,不询问


  • 7.输出文件,比如log日志

    echo "【要输出的文字信息,比如当前日期时刻】%date% %time%" > log.txt

    日期会显示为:2019/12/17 的格式,
    时刻会输出为:13:58:28.24

    如果想把日期时间用作 log 文件名,
    由于/:都是不可用于文件名的字符,
    这里我们就用到了上面提到的替换功能。

    示例:

    REM 将`/`跟`:`替换为空
    set logfilename=%date:/=%_%time::=_%.txt
    echo "%date% %time%Log信息" > "%logfilename%"

    这里的 log 文件会在当前执行的路径下生成。
    需要在指定路径下生成的话,在 log 文件名用完整路径即可

12-22 17:52
查看更多