一,bat腳本常用的的輸出命令是“echo 輸出內容”,可以利用echo將文本輸出到cmd窗口或文件。bat腳本是不區分大小寫的腳本語言,因此大小寫都可以。
例如:
REM 在命令行窗口輸出 echo Hello World! pause
則會在命令行窗口輸出Hello World!
通過bat打開命令行窗口運行上面的命令還會輸出CMD運行相關的提示信息。如果想關閉多余的輸出可以用 @ECHO OFF,示例:
@ECHO OFF REM 在命令行窗口純凈的輸出 echo Hello World! pause
二,輸出內容到文件
可以使用重定向將輸出結果保存到文件中。
>符號和>>符號為兩個常用的重定向符號。>會將原始文件的內容清空,>>會在文件后面追加內容,如果文件不存在則創建文件。
具體使用方法如下
echo Hello World >file.txt echo Hello World 1>file.txt echo Hello World 2>file.txt
運行后,會將Hello World輸出到file.txt中。兩行代碼等價。其中1的意思是代表將標准輸出重定向,標准輸出即正常的輸出內容。而2>file.txt則代表將錯誤信息輸出到file.txt中,這樣Hello World會顯示在屏幕上,只有報錯的信息會保存在file.txt中。
三,輸出內容追加到文件
示例:
echo Hello World >>file.txt
上面的語句使用了2個>,表示追加內容,如果file.txt內容不是空,則Hello World會在最后一行的后面另起一行保存。
四,將bat文件的輸出結果放到txt文件中
有時候我們會寫批處理執行過程,會集中輸出很多內容,又不想在bat里面頻繁的試用輸出到文件命令,怎么辦呢?
我們可以嘗試下面的辦法:
@echo off call "批處理路徑">D:\結果.txt start notepad D:\結果.txt REM 再例如下面這樣 @echo off call "D:\procedure.bat">D:\結果.txt start notepad D:\結果.txt
【實例】:
@ECHO OFF echo 檢查並停止相關服務.... echo ------------------------------ for %%i in (wuauserv,yun-wps) do ( sc query "%%i" >nul && ( echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%開始停止服務:%%i >>"%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.txt" net stop "%%i" ::@ECHO 開始卸載服務:%var% ::SC DELETE %var% REM net start "%%i" REM wmic SERVICE where name="%%i" get State|findstr /i "RUNNING" && ( echo %%i已啟動。 )||( echo %%i未啟動!請查看日志信息。 ) )||( echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%服務不存在:%%i 自動跳過>>"%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.txt" ) ) echo 執行完成 REM pause exit /B
將上面的腳本復制到txt里面,並另存為ANSI格式,重命名為:WinService-Stop.bat,然后在相同目錄下新建一個txt,復制下面這段:
set ws=WScript.CreateObject("WScript.Shell") ws.Run "WinService-Stop.bat",0
將上面的腳本復制到txt里面,並另存為ANSI格式,重命名為:啟動bat文件.vbs,它的作用是用了靜默啟動bat腳本而隱藏CMD窗口,隱藏命令行窗口使用戶無感知。注意兩個文件在同一目錄。
然后我們在“計算機-管理-任務計划程序”里面新增一個任務計划,定時執行“啟動bat文件.vbs”就可以自動關閉Windows系統的自動更新啦。
