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%
esult.txt if not exist %FILEPATH% (echo > %FILEPATH%)

3.清理文件

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

d:	est换成你要的目录路径; /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:ackup /s /M *.bak /D +%yesterday% /C "cmd /c xcopy /Y @path Y:"

5.遍历输出一个文件

type+文件名

@echo off
for /f  %%i in (C:win_send_mail	est.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	ab_check.sql > D:OracleTabChk
esult.txt

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

windows2008上测试

set ORACLE_HOME=D:appadminproduct11.2.0dbhome_1
%ORACLE_HOME%BINsqlplus / as sysdba @D:OracleTabChk	ab_check.sql
tab_check.sql
spool D:OracleTabChk esult.txt
+需要执行的脚本
spool off

windows2012上测试

set ORACLE_HOME=D:appadminproduct11.2.0dbhome_1
%ORACLE_HOME%BINsqlplus / as sysdba @D:OracleTabChk	ab_check.sql > D:OracleTabChk
esult.txt
原文地址:https://www.cnblogs.com/houzhiheng/p/13914115.html