如何使用Windows的批次檔建立一個文字檔?


一般的使用者可能很難想像為何要用一個Windows批次檔來建立另一個文字檔,但對某些程式設計者來說用這種方式來產生一個文字檔案後,在其他程式流程中再拿來使用,確實也是一種簡單又實用的方法。

- 首先建立一個.bat的檔案,要怎麼建立可參考"如何使用批次檔(Batch File)開啟多個應用程式",假設檔名為GenerateTxtFile.bat,複製以下的代碼到此批次檔並存檔後即可執行。

-  那要怎麼使用這個批次檔呢? 目前提供兩種方式,一是直接執行它,則被建立出來的文字檔檔名由批次檔幫你產生(如 temp2019122609281162.txt);另一方式是指定一個檔名給它,舉例如下 :

1.          直接執行它 : (建立出來的文字檔檔名由本批次檔幫你產生)

GenerateTxtFile.bat  

2.          指定一個檔名給它 :
       
        GenerateTxtFile.bat CommandLine.txt 

       * 說明 : GenerateTxtFile.bat 是本實作的批次檔,CommandLine.txt 是本批次檔將會建立出來的文字檔。
 
- 被建立的文字檔其內容當然可自行去批次檔內改。本批次檔內的 ":toFillOutContent" 下的括弧即為文字檔的內容,可以根據你的需要自行修改。

- 這個批次檔內相關的指令若有不熟悉的可以參考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
Read More »
>