
フォルダ内にある複数ファイルを、バッチファイルで一括ファイル名変更をしようとしています。
元ファイル名は、
23_ABCA_K.txt
23_ABCL_K.txt
23_ABCL_E.txt
23_ABCA_K.txt というように、頭2桁(日付)は共通で4ファイルあります。
これを、頭2桁を維持して、アルファベットのところを変更したいのです。
23_ABCA_K.txt→23_件数表.txt
23_ABCL_K.txt→23_集計表.txt
23_ABCL_E.txt→23_エラー数.txt
23_ABCA_K.txt→23_合否.txt という具合です。
rename 23_ABCA_K.txt 23_件数表.txt
とすると、頭2桁が変化したときに対応できないし、
%date: などでシステム日付を取得すると、
23_ABCA_k.txtを24日に改名すると、23が保持されず24になってしまう・・・
現状のファイル名の一部を取得して、改名後のファイル名につける
ということはできるのでしょうか?
よろしくお願いします。

No.4
- 回答日時:
No.2です。
単純なファイルのリネームで良ければ、エディタの使い方の問題のような気がするのですが。
まず、ファイル一覧は「コマンドプロンプト(DOS窓)」から一覧を取得できます。
> DIR *.TXT > RENAME.BAT
そして、そのファイルをたとえば秀丸エディタなどであればキーボードマクロが使えますから、
23_ABCA_K.txt
を
REN 23_ABCA_K.txt 23_件数表.txt
というバッチファイルを作るのはそんなに難しくないと思います。
(但し、「件数表」など漢字の部分に関しては手入力になるとは思いますが)
あるいは、Excelなどでも列の文字列を連結することでできるとは思いますが。
No.3
- 回答日時:
REM カレントフォルダの全txtを対象にforループ
for %%f in (*.txt) do call :sub %%f
REM 終わり
exit
REM サブルーチン
:sub
REM moji0にファイル名セット
set moji0=%1%
REM moji1にファイル名先頭3文字をセット(アンダーバー含む)
set moji1=%moji0:~0,3%
REM moji2にファイル名先頭4文字以降をセット
set moji2=%moji0:~3%
REM IF処理でリネーム
if %moji2%==ABCA_K.txt ren %1 %moji1%件数表.txt
if %moji2%==ABCL_K.txt ren %1 %moji1%集計表.txt
if %moji2%==ABCL_E.txt ren %1 %moji1%エラー数.txt
if %moji2%==ABCB_K.txt ren %1 %moji1%合否.txt
REM 責任は持てないので対象フォルダをコピーしてから試してください。
REM 対象フォルダへバッチファイルを入れて実行してください。
REM echo命令は適当に入れてください。
REM ファイル名がだぶっているので、ABCB_K→合否.txtに変えました。
変数に入れる という発想までは出たのですが
それを記述するスキルがありませんでした。
他の件でも参考にできそうです。
ありがとうございます。

No.2
- 回答日時:
答えになっていませんが
「Perl」を使われてはいかがでしょう。(フリーソフト)
Perlと言うと、webでのCGIの代名詞のように言われていますが、元々はファイル内容やファイル名などのテキスト文字列を処理するためのものです。
失礼かも知れませんが、上記質問を読んでも明確な変換規則がよく分かりませんし、限られたところで簡潔明瞭に説明できない場合もあるでしょう。
それならば、試行錯誤しながらでも、自分で作られてみてはいかがでしょう。
※Windowsでは、多少の制約があるかも知れませんが。
会社の環境で、フリーソフトを簡単に入れられないので
Perlは検討しませんでした。
分かりにくい内容にも関わらず、回答ありがとうございます。
たしかに、説明するの難しいのですよね・・・
No.1の方の方法でできました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- iOS ファイルの名前変更 2 2022/08/11 20:47
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】テキストファイルから特...
-
echoの出力の最後のスペースを...
-
バッチファイルのfor文の使い方...
-
xcopyで特定のファイルのみをコ...
-
複数テキストファイル連結につ...
-
Linux(raspberry pi)でのcpコマ...
-
エクセルのセルに設定したハイ...
-
bat処理の実行結果ログ出力方法...
-
NULLの置き換えについて
-
リダイレクト >> を複数のファ...
-
.htaccess で読み込む .htpassw...
-
コマンドにてテキストファイル...
-
echo "abc" >> test.txt で、先...
-
行数ごとに検索をかけて並び替...
-
コマンドプロンプトで相対パス...
-
MacとLinuxでrcpコマンドを使う...
-
linux テキスト処理
-
複数のファイルをsedで処理した...
-
バッチコマンドの「set」で入力...
-
nkfで全角ハイフンが半角になる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echoの出力の最後のスペースを...
-
echo "abc" >> test.txt で、先...
-
【VBA】テキストファイルから特...
-
コマンドプロンプトで相対パス...
-
リダイレクト >> を複数のファ...
-
コマンドプロンプトで標準エラ...
-
バッチファイル 指定行の切り出し
-
コマンド実行結果を環境変数に...
-
コマンドにてテキストファイル...
-
バッチファイルのfor文を使って...
-
バッチファイル 現在のフォルダ...
-
NULLの置き換えについて
-
FTPのバッチファイルで日付を引...
-
バッチファイルで改行の出力
-
.txtって、縦書きにはならない...
-
複数のテキストファイルをひと...
-
ワードのテキストボックスの中...
-
複数テキストファイル連結につ...
-
【DOSコマンド】for の デリミ...
おすすめ情報