この記事では、バッチファイルを使用してファイルの作成やファイルへの書き込みを行う方法を紹介します。
まず、結論を記載します。
バッチファイルでファイル作成と書き込み
- ファイルへの書き込みは「echo」コマンドを使用
- テキストファイルへのみ書き込み可能で、ファイル作成も可能
- 「>>」を使用することで、既存のファイルに追記できる
代表例のコードは下記です。
使用方法はこちらの記事をご覧ください。
@echo off
setlocal enabledelayedexpansion
rem フォルダのパスを取得
set "targetDirectory=%cd%"
rem 対象ファイルの拡張子を入力
set /p "fileExtension=対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...): "
set "OutputFile=filelist.csv"
echo "ファイル名","ファイルサイズ (バイト)" > %OutputFile%
for %%f in (*%fileExtension%) do (
set "FileName=%%~nxf"
set "FileSize=%%~zf"
echo "!FileName!","!FileSize!" >> %OutputFile%
)
echo ファイルリストが %OutputFile% に書き出されました。
endlocal
pause
下記、詳細を説明します。
使用するコマンド
前述の通り、「echo」コマンドを使用します。
このコマンドを使うと、単純に文字を表示させるだけでなく、ファイルへの書き込みが出来ます。
文法 | 機能 |
echo [メッセージ] | [メッセージ]を表示する |
echo [メッセージ] > [ファイル] | [ファイル]に[メッセージ]を書き込む |
詳細はこちらのサイトをご覧ください。
使用例1 新しいファイルを作成し書き込み
先述の通り、
echo [メッセージ] > [ファイル]
とすることでファイルへの書き込みが出来ます。
このとき、[ファイル]の箇所に新しいファイルを指定すると、そのファイルを作成して書き込みを行います。
echo This is a new file > newfile.txt
こちらのコードでは、
「newfile.txt」というファイルを作成→それに「This is a new file」と記入
という処理をしています。
既存のファイルに追記
先ほどのコマンドでは、既存のファイルを指定すると内容を上書きしてしまいます。
このとき、「>>」を使用することによって、上書きではなく追記を行うことが出来ます。
echo This is a new file > newfile.txt
echo This is new sentence >> newfile.txt
こちらのコードを使用すると、下記のようなテキストファイルを作成できます。
使用例3 ファイルのリストを作成
先ほどの機能を応用し、ファイルの情報をまとめたリストを作成します。
@echo off
setlocal enabledelayedexpansion
rem フォルダのパスを取得
set "targetDirectory=%cd%"
rem 対象ファイルの拡張子を入力
set /p "fileExtension=対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...): "
set "OutputFile=filelist.csv"
echo "ファイル名","ファイルサイズ (バイト)" > %OutputFile%
for %%f in (*%fileExtension%) do (
set "FileName=%%~nxf"
set "FileSize=%%~zf"
echo "!FileName!","!FileSize!" >> %OutputFile%
)
echo ファイルリストが %OutputFile% に書き出されました。
endlocal
pause
こちらのコードでは
ファイル形式の指定→ファイルごとに情報を取得→リストに書き込み
という処理をしています。
これにより、下の画像のようなことができます。
詳細は、こちらの記事を参照ください。
その他のバッチファイル
今回はファイルへの書き込みに焦点を当てましたが、
バッチファイルを使用するとその他の処理も行うことができます。
バッチファイルに可能なことを大まかに知りたい方はこちらの記事を、
実際に使用できるコードを知りたい方はこちらの記事を参照ください。
以上、最後まで読んでくださりありがとうございました。
メーカー勤務のサラリーマン。
生成AIを駆使してプログラムを作り、
日々の業務の効率化を図る。