プロが教える店舗&オフィスのセキュリティ対策術

コマンドプロンプトでバッチファイルを作成しようとしています。
ファイルの指定をフォルダに格納されているすべてのCSVをインプットにして以下IF文の処理を実施したいのですが、フォルダ(CSV_folder)内のすべてのCSVを指定することはできるのでしょうか?

中身は以下のようなものを作成中です。

@echo off
setlocal enabledelayedexpansion
for /f "delims=, tokens=1-3" %%a in (file.csv) do (
↑この(file.csv)をCSV_folderに格納されているCSVすべてを対象にする。
if %%a==01 (
echo %%b
)else (
  echo %%c
)
)

A 回答 (1件)

例えば、以下のような感じでしょうか。



サブフォルダ内のCSVファイルも対象となります。ざっと書いただけなので、おかしな所があったらすみません。

――――――――――――――――

@echo off
setlocal enabledelayedexpansion
for /r "C:\CSV_folder" %%z in ("*.csv") do (
echo ▼ 「"%%~z"」
for /f "usebackq delims=, tokens=1-3" %%a in ("%%~z") do (
if %%a==01 (
echo %%b
)else (
echo %%c
)
)
echo.
)
pause

――――――――――――――――
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
for文のコマンドでrを設定してフォルダの名称を取得処理をループさせ
それを変数に置き、次の処理のインプットにするとこのような書き方になるのですね。

処理を流してみたところ私が、実装したいような処理になりました。
また一つ知識が増えました。ありがとうございます。

お礼日時:2021/07/15 10:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています