こんにちは。
フォルダにあるファイルが存在するときに処理を行うバッチファイルを作成しています。
あるファイル名は一部は固定文字で一部は変動します。
具体的には
sampleYYMMDD.txt
となり、YYMMDDは変動し、その内容は他のファイルdate.txtに入っています。
例えば、date.txtには
041021
がはいっていて
バッチファイルでsample041021.txtがあれば次の処理を行うといったロジックを記述したいのですが、どうしたらできますでしょうか?
ファイル名が固定であれば単純に
FOR %%F DO IF %%F==sample041021.txt 処理
とできそうなのですが、ファイル名の情報はdate.txtの内容に依存します。
もっと簡単なやり方でもかまいません。ヒントをいただけないでしょうか?
No.4
- 回答日時:
確かにSET /Pが使えない古いOSでは使えないですね。
今確認した環境はWindows XPですが、仕事柄いまだにバッチ処理を書いているので、SET /PがNTでも2000でも動いたことを記憶していますが、確認してください。
SET /P DATESTR=< date.txt
/Pパラメータはプロンプトから環境変数に値を設定することができるパラメータですので、標準入力でも環境変数に設定できると思われます。
FOR /F %%I IN (date.txt) DO SET TEXTDATE=%%I
でも、当然環境変数に設定することができますね。
ここで、1つ情報を
仮に、date.txtが
041020
041021
041022
のように何行も入っていた場合、
前者のSET /Pから始まるものは一番最初の行の041020を、
後者のFORから始まるものはは一番最後の行の041022を、
それぞれ評価すると思います。
ありがとうございました。
こちらの環境はWindowsNT Workstation v4.0です。
SETコマンドではどうも内容が変数に設定されないようです。参考になりました。他でも試してみます。
No.3ベストアンサー
- 回答日時:
標準入力じゃ受け取れないかと・・・
for /F %%i in (ファイル名) do set TXTDATE=%%i
これでファイルにかかれた内容を環境変数にセットできます。
ただし、NT系のOSに限ります。
No.2
- 回答日時:
No.1です。
ちょっと訂正します。
SET /P DATESTR= < data.txt
IF EXIST sample%DATESTR% 処理
で確認して見てください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルのタブをカン...
-
テキストファイルのファイル名...
-
拡張子を元に戻す
-
バッチファイルからVBAに引数を...
-
多数のサブディレクトリ内のフ...
-
VBAでワークシートを引数として...
-
EXCEl/VBAで拡張子なしのファイ...
-
バッチ処理でファイルの中身を...
-
VBAでエクセルをtxtに変換する...
-
DOSコマンドによるテキストファ...
-
ftpコマンドで複数のファイルを...
-
バッチファイルで文字列削除に...
-
.txtではなく.logの方が良いの...
-
複数のファイルデータを新しく...
-
perl ファイル内文字列抽出
-
accessでSQL文を使ってcsvファ...
-
batファイルについて
-
txtファイルが作成されない
-
vbsにてファイルが存在すればメ...
-
cshでファイルサイズ取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
バッチファイル 複数ファイル...
-
テキストファイルで提出とは?
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
テキストファイルのファイル名...
-
ファイルの最後に文字列挿入
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
テキストファイルのタブをカン...
-
MATLABで行列を配列に格納する方法
-
renameコマンドについて
-
【Excel】 VBAを使って毎回名前...
おすすめ情報