当日日付のフォルダを作成し
base.txtというテキストファイルから
当日日付フォルダの中にID名のテキストファイルを作成。
ID名のテキストファイルには、IDとデータを格納
というbatファイルは作成可能でしょうか?
作成可能でしたら教えて頂ければ助かります。
宜しくお願いします。
base.txt
ID データ
AAAA 111111
AAAA 222222
BBBB 111111
BBBB 222222
↓
フォルダ:YYYYMMDD
AAAA.txt
AAAA 111111
AAAA 222222
BBBB.txt
BBBB 111111
BBBB 222222
No.1
- 回答日時:
単純にそのデータであれば、以下のような感じで出来るかと思います。
―――――――――――――――――
@echo off
rem ■ カレントディレクトリの変更
pushd "%~dp0"
rem ■ 設定
set "出力フォルダ=%CD%\%date:/=%"
set "入力ファイル=%CD%\base.txt"
rem ■ フォルダ作成
md "%出力フォルダ%"
rem ■ カレントディレクトリの変更
pushd "%出力フォルダ%"
rem ■ テキストファイルにIDとデータを格納
for /f "tokens=1-2 usebackq delims= " %%a in ("%入力ファイル%") do (
echo %%a %%b>> "%%a.txt"
)
―――――――――――――――――
ただ、2列目のデータに、半角記号やスペース関係の文字が使われている場合は、もう少し工夫が必要になるかと思います。
又、全角スペースと半角スペースが混在しているようですが、それを出力ファイルで再現する事も難しいかも知れません。
sed等の文字列を置換するフリーソフトを利用出来る環境であれば難しい事ではないのですが、企業などでフリーソフトが禁止されている環境だと、少し処理を考えないと難しいかも知れません。どうしても無理そうなら、もしかしたらPowerShell等の方が良いかも知れません。
No.2ベストアンサー
- 回答日時:
No.1です。
半角記号には対応出来ないという旨を書きましたが、No.1のバッチファイルの例では問題無かったです。失礼しました。訂正させて頂きます。
ただ、やはり処理を変更しますと、半角記号への対応がネックになってくる場合がありますので、半角記号やスペース関係の文字も含めて行をそのまま出力しようと思うと、以下のような感じで出来るかと思います。
―――――――――――――――――――
@echo off
rem ■ カレントディレクトリの変更
pushd "%~dp0"
rem ■ 設定
set "出力フォルダ=%CD%\%date:/=%"
set "入力ファイル=%CD%\base.txt"
rem ■ フォルダ作成
md "%出力フォルダ%"
md "TEMP"
rem ■ カレントディレクトリの変更
pushd "%出力フォルダ%"
rem ■ テキストファイルにIDとデータを格納
rem ◇ 1行をまるごと取り出して、一時ファイルに出力する
for /f "skip=1 usebackq delims=" %%a in ("%入力ファイル%") do (
echo %%a> "..\TEMP\今回の行.txt"
rem ◇ 出力した行の1列目を名前として、その行全体をファイルに保存する
for /f "tokens=1 usebackq delims= " %%a in ("..\TEMP\今回の行.txt") do (
type "..\TEMP\今回の行.txt" >> "%%a.txt"
del /q "..\TEMP\今回の行.txt"
)
)
rem ■ 一時フォルダの削除
rd /q "..\TEMP"
―――――――――――――――――――
意味は、
「skip=1」=1行目を飛ばす
「usebackq」=「in」のファイル指定にダブルクォーテーションを使う
「delims=」=区切りとなる文字の指定
「tokens=1」=1列目を対象とする
という感じです。
迅速に対応していただきありがとうございました!
どちらの方法も試してみましたが、問題なく振り分けが出来ました!
急ぎで作りたかったので大変助かりました。
普段まったく勉強してない自分にガッカリです。
精進します。
本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
forfilesで検索したファイルを...
-
COPYコマンドで結合すると余計...
-
テキストファイルのタブをカン...
-
テキストファイルのファイル名...
-
.txtではなく.logの方が良いの...
-
Windows版のgzipについて
-
VBAでエクセルをtxtに変換する...
-
Perlで同じフォルダにある任意...
-
accessでSQL文を使ってcsvファ...
-
【エクセルVBA】エクセルからテ...
-
【Excel】 VBAを使って毎回名前...
-
ftpコマンドで複数のファイルを...
-
バッチファイルからVBAに引数を...
-
フォルダ名をファイル名の頭に...
-
DOSコマンドによるテキストファ...
-
多数のサブディレクトリ内のフ...
-
コマンドプロンプトで指定した...
-
バッチファイル 複数ファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
バッチファイル 複数ファイル...
-
テキストファイルで提出とは?
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
テキストファイルのファイル名...
-
ファイルの最後に文字列挿入
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
テキストファイルのタブをカン...
-
MATLABで行列を配列に格納する方法
-
renameコマンドについて
-
【Excel】 VBAを使って毎回名前...
おすすめ情報