bat批處理常用指令碼

我愛睡蓮發表於2020-11-02

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

 

相關文章