一般的使用者可能很難想像為何要用一個Windows批次檔來建立另一個文字檔,但對某些程式設計者來說用這種方式來產生一個文字檔案後,在其他程式流程中再拿來使用,確實也是一種簡單又實用的方法。
- 首先建立一個.bat的檔案,要怎麼建立可參考"如何使用批次檔(Batch File)開啟多個應用程式",假設檔名為GenerateTxtFile.bat,複製以下的代碼到此批次檔並存檔後即可執行。
- 那要怎麼使用這個批次檔呢? 目前提供兩種方式,一是直接執行它,則被建立出來的文字檔檔名由批次檔幫你產生(如 temp2019122609281162.txt);另一方式是指定一個檔名給它,舉例如下 :
1.
直接執行它 : (建立出來的文字檔檔名由本批次檔幫你產生)
GenerateTxtFile.bat
2.
指定一個檔名給它 :
GenerateTxtFile.bat CommandLine.txt
* 說明 : GenerateTxtFile.bat 是本實作的批次檔,CommandLine.txt 是本批次檔將會建立出來的文字檔。
- 被建立的文字檔其內容當然可自行去批次檔內改。本批次檔內的 ":toFillOutContent" 下的括弧即為文字檔的內容,可以根據你的需要自行修改。GenerateTxtFile.bat CommandLine.txt
* 說明 : GenerateTxtFile.bat 是本實作的批次檔,CommandLine.txt 是本批次檔將會建立出來的文字檔。
- 這個批次檔內相關的指令若有不熟悉的可以參考WIKIBOOKS 的 Windows Batch Scripting部分,裡面有非常詳細的說明,需要時可以去查一下其中的說明及範例。
- 本批次檔的內容如下 :
@echo off
REM ===== Start =====
REM The batch script will generate a file and its content.
REM Uasge 1 : GenerateTxtFile.bat yourTargetTxtFile
REM Uasge 2 : GenerateTxtFile.bat
set CurDirName=%CD%
set txtFileName=%1%
set YYYY=%DATE:~0,4%
set MM=%DATE:~5,2%
set DD=%DATE:~8,2%
set HH=%TIME: =0%
set HH=%HH:~0,2%
set MI=%TIME:~3,2%
set SS=%TIME:~6,2%
set FF=%TIME:~9,2%
REM If you do not assign a filename, the script will generate a filename for you.
if "%txtFileName%" == "" set txtFileName=temp%YYYY%%MM%%DD%%HH%%MI%%SS%%FF%.txt
set targetDirAndFile=%CurDirName%\%txtFileName%
if exist %targetDirAndFile% del %targetDirAndFile% /f
if not exist %targetDirAndFile% (
goto toFillOutContent
) else (
goto noFillOutContent
)
:toFillOutContent
(
REM The following content/between the ( and ) can be modified according to your needs
echo The file was created by the GenerateTxtFile.bat
echo.
echo 1st line - will be written in %txtFileName%.
echo 2nd line - will be written in %txtFileName%.
echo 3rd line - will be written in %txtFileName%.
echo 4th line - will be written in %txtFileName%.
echo.
echo End of file.
) > %targetDirAndFile%
goto finalProcess
:noFillOutContent
goto finalProcess
:finalProcess
if exist %targetDirAndFile% echo File was successful created!
if exist %targetDirAndFile% echo The file %txtFileName% is located in the directory %CurDirName%.
if not exist %targetDirAndFile% echo No file was created!
pause
REM ===== End =====
- 執行本批次檔後顯示的結果如下: (不指定文字檔的檔名)
- 執行本批次檔後建立的文字檔內容如下:
The file was created by the GenerateTxtFile.bat
1st line - will be written in temp2019122700035099.txt.
2nd line - will be written in temp2019122700035099.txt.
3rd line - will be written in temp2019122700035099.txt.
4th line - will be written in temp2019122700035099.txt.
End of file.
參考資料 : Windows Batch Scripting - Wikibooks, open books for an open world