zoukankan      html  css  js  c++  java
  • 【bat】bat命令实践

    【1】变量使用,获取当前年月日

    net use Z: \192.168.135.1share_linux a123456! /user:chaoqun.guo
    set bath=c:backup
    set today=%date:~0,4%%date:~5,2%%date:~8,2%
    ::%date:~0,4%,表示从第0下标开始获取4位长度的值
    set db_name=test
    set filename=%db_name%%today%
    
    
    path="C:Program FilesWinRAR"
    winRAR a %bath%%filename%.rar %bath%%filename%.bak 
    
    copy %bath%%filename%.rar \192.168.135.1share_linux /Y
    
    net use \192.168.135.1share_linux /delete

    【2】DOS/sql server下使用net use

    Rem dos
    
    net use Z: \192.168.135.1share_linux a123456! /user:chaoqun.guo
    net use \192.168.135.1share_linux /delete
    
    Rem sql server
    
    EXEC sp_configure 'show advanced options',1;
    RECONFIGURE WITH OVERRIDE;
    EXEC sp_configure 'xp_cmdshell',1;
    RECONFIGURE WITH OVERRIDE
    EXEC master.dbo.xp_cmdshell 'net use x: \219.129.239.217master_1_temp "AO%7Ro*AD35@bTa" /user:"7RoAdmin"' 

    【3】如何写注释?Rem

    Rem  注释内容

    【4】快速把 bat 安装成定时任务

    /*
    --ddt_db_backup_install.bat
    
    @echo off
    color 2
    echo.
    echo ----------------- ddt_db_backup_install  --------------------
    echo ----------------- ddt_db_backup_install -------------------- > install.log 
    echo.
    
    schtasks /delete /TN ddt_db_backup /F
    schtasks /delete /TN ddt_db_bakcup /F
    schtasks /create /ru SYSTEM /tn "ddt_db_backup" /tr "C:shellddt_db_bakcup.bat" /sc daily /st 06:10:00 /F
    
    IF ERRORLEVEL 1 (ECHO Error: ddt_db_backup install error
    ECHO Error: ddt_db_backup install error >> install.log 2>&1
    goto error)
    echo OK
    echo OK >> install.log 2>&1
    
    :ok
    echo.
    echo ------------------- Install Success ---------------------
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    goto end
    
    :error
    echo.
    echo.
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    ping -n 2 127.1>nul
    exit 1
    
    :end
    exit
    
    
    */
    
    /*
    --ddt_db_backup.bat
    --add the code for delete override files
    
    if exist F:Db_Tank_Back (set data_path=F:Db_Tank_Back) else if exist E:Db_Tank_Back (set data_path=E:Db_Tank_Back) else (if exist D:Db_Tank_Back (set data_path=D:Db_Tank_Back) )
    forfiles /p %data_path% /s /m *.7z /d -7 /c "cmd /c del @path"
    
    */

    【5】不换行打印输出

    set /p="测试引擎服务是否启动......"<nul 

    【6】上一条命令执行成功与否 errorlevel

    1为失败,0为成功

    echo 开始重命名数据库/创建数据库......
    set /p="开始重命名数据库/创建数据库......"<nul >>%logfile%
    sqlcmd -S 127.0.0.1,1433 -i 1_DB_renameAndCreate.sql -E -b 2>>%errorfile% 1>db_log_%today%.log
    IF ERRORLEVEL 1 echo fail......请检查db_log_%today%.log 文件>>%logfile%
    IF ERRORLEVEL 0 echo ok>>%logfile%

    ERRORLEVEL  与 %ERRORLEVEL % 的区别

    IF ERRORLEVEL 1 ( command )    与  IF %ERRORLEVEL%  LEQ 1 ( command  )  等效

    也就是 ERRORLEVEL 1 等效于 “大于等于”

    环境变量的比较符号可以使用的有:
            ● EQU - 等于
            ● NEQ - 不等于
            ● LSS - 小于
            ● LEQ - 小于或等于
            ● GTR - 大于
            ● GEQ - 大于或等于

    【7】如何复制文件到一个文件夹下,重复则跳过?replace

    官网:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/replace

    使用replace,可以完成这个功能。

      形式:replace /a source_dir* des_dir

      举例:replace /a d: emp_bak* d:copy_file

    source_dir:为源文件夹

    des_dir:为目标文件夹

    【8】bat中的for,执行指定次数

    1)执行6次循环
    如果只要循环6次的话
    
      for /l %%i in (1,1,6) do就可以了。
    
    (2)处理文本
    要循环处理文本文件的话
    
      for /f %%i in (a.txt) do
    
    3)在循环中运行多个命令 for %%i in (resource1 ^ resource2 ^ resource3 ^ resource4) ^ do ( echo %%i XCOPY /Y /S /q %%i %OFFICE_DIR% )

    【9】bat中使用timeout来做等待

    TIMEOUT [/T] timeout [/NOBREAK]
    
    描述:
    
    这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受一个参数,忽视按键。
    
    参数列表:
    
    /T timeout 指定等候的秒数。有效范围从 -199999 秒。
    
    /NOBREAK 忽略按键并等待指定的时间。
    
    /? 显示此帮助消息。
    
    注意: 超时值 -1 表示无限期地等待按键。
  • 相关阅读:
    telent connection refused
    (待整理)flume操作----------hivelogsToHDFS案例----------运行时,发生NoClassDefFoundError错误
    Java核心技术36讲----------Exception和Error有什么区别
    Hive操作之向分区表中导入数据的语义错误
    java的值传递机制
    notepad无法对linux中的文件进行修改???
    读书笔记----------第五章----------字符串
    读书笔记----------第四章----------流程控制
    java中子类会继承父类的构造方法吗?
    文章分类
  • 原文地址:https://www.cnblogs.com/gered/p/13180548.html
Copyright © 2011-2022 走看看