脚本:bat批处理常用脚本

windows下有很多场景需要编写批处理来解决问题,跟定时任务相结合使用更佳。

1.创建文件,md,mkdir都可以进行文件创建

set AwrPath=D:\OracleTabChk
if not exist %AwrPath% (md %AwrPath%)

 

2.创建一个txt,因为批处理没有直接命令创建文件文件的命令,所以可以直接出书一个txt

set AwrPath=D:\OracleTabChk
set FILEPATH=%AwrPath%\result.txt if not exist %FILEPATH% (echo > %FILEPATH%)

 

3.清理文件

forfiles /p "d:\test" /s /m *.* /d -7 /c "cmd /c del @path"

d:\test换成你要的目录路径; /d -7 指删除7天以前所有*.文件。

 

4.拷贝文件

rem 获取前一天的时间

set today=%date:~8,2%
set /a day=%today%-1
set yesterday=%date:~0,4%/%date:~5,2%/%day%

forfiles /p D:\backup /s /M *.bak /D +%yesterday% /C "cmd /c xcopy /Y @path Y:"

 

5.遍历输出一个文件

type+文件名

@echo off
for /f  %%i in (C:\win_send_mail\test.txt) do echo %%i
pause

 

6.cmd输出回显与定格显示

@echo off    --不显示输出内容
pause          --显示执行界面

 

7.添加脚本注释

1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
2、rem 注释内容(不能出现重定向符号和管道符号)
3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
4if not exist nul 注释内容(不能出现重定向符号和管道符号)
5、:注释内容(注释文本不能与已有标签重名)
6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
7goto 标签 注释内容(可以用作说明goto的条件和执行内容)
8、:标签 注释内容(可以用作标签下方段的执行内容)

 

8.端口扩充

netsh int ipv4 show dynamicport tcp        查看端口的范围
netstat -ano|find /c "TIME_WAIT"        查看等待的端口数
netsh int ipv4 set dynamicport tcp start=1025 num=60000        扩充端口范围

 

9.调用mysql脚本

mysql -uroot -p123456 < D:\OracleTabChk\tab_check.sql > D:\OracleTabChk\result.txt

 

10.调用oracle脚本,在有些windows机器上直接@一个sql文件,会没有反应,在windows2012上就可以直接@,但是在老一些的系统上就不行,所以老的系统就需要在执行脚本上添加spool自己打印

windows2008上测试

set ORACLE_HOME=D:\app\admin\product\11.2.0\dbhome_1
%ORACLE_HOME%\BIN\sqlplus / as sysdba @D:\OracleTabChk\tab_check.sql
tab_check.sql
spool D:\OracleTabChk\result.txt
+需要执行的脚本
spool off

windows2012上测试

set ORACLE_HOME=D:\app\admin\product\11.2.0\dbhome_1
%ORACLE_HOME%\BIN\sqlplus / as sysdba @D:\OracleTabChk\tab_check.sql > D:\OracleTabChk\result.txt

 

posted @ 2020-11-02 14:01  我爱睡莲  阅读(1510)  评论(0编辑  收藏  举报