ディレクトリ内のすべてのファイル (バッチ ファイル自体を除く) の 3 つのフィールドを持つ .csv ファイルを生成する Windows バッチ ファイルを作成する必要があります。
田畑:
- ファイル名 (これにはコンマを含めることができます!)
- 作成日
- 変更日
バッチ ファイルはディレクトリから実行され、現在のディレクトリ内のファイルの .csv ファイルを生成することを認識している必要がありますが、バッチ ファイルまたは生成された .csv ファイルを一覧表示しないことに注意してください。
Powershell、vbscript などは私の状況では実行できないため、Windows バッチ ファイルである必要があります。
編集:
これが私が試した2つの主なアプローチです。
最初の試み:裸のファイル名を「temp1.tmp」に、作成されたタイムスタンプを含むファイル リストを「temp2.tmp」に、変更されたタイムスタンプを含むファイル リストを「temp3.tmp」に分けてみました。
DIR /B /A:-D-H | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp1.tmp"
DIR /A:-D-H /T:C | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp2.tmp"
DIR /A:-D-H /T:W | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp3.tmp"
MORE +5 "temp2.tmp" > "temp4.tmp"
COPY /Y "temp4.tmp" "temp2.tmp"
MORE +5 "temp3.tmp" > "temp4.tmp"
COPY /Y "temp4.tmp" "temp3.tmp"
DEL /F/Q "temp4.tmp"
しかし、このアプローチの問題は、一度に複数のファイルから行を読み取る方法がわからないことです。これは私が見つけた最も近いものですが、それは1つのファイルからのものです:
FOR /F "delims=" %%i IN (temp1.tmp) DO (
ECHO."%%i" >> "File List.csv"
)
2 回目の試行:一時ファイルの使用を避けようとしましたが、役に立ちませんでした。
FOR %%i IN (*.*) DO @ECHO "%%~ni%%~xi",%%~ti >> "File List.csv"
この 2 番目の方法の問題は、バッチ ファイル名が除外されず、ファイル作成のタイムスタンプが提供されないことです。
これらのいずれかを機能させるための解決策、またはまだ試していないアプローチはありますか?