[前の記事]« ファイル内の特定番地から指定の長さの文字列を抽出したい
[次の記事]サイズ0バイトのCONFIG.SYS、AUTOEXEC.BATとその役割 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DIR…ディレクトリ(フォルダー)/ファイルの一覧」索引へ
▲カテゴリー「FOR /F」索引へ
▲カテゴリー「SET, PATH, %環境変数%」索引へ
▲カテゴリー「バッチファイルの文法と環境変数」索引へ

名前に日付がついたファイルから最新のものを検出し、その日付を年月日に分解して変数に格納


686) テキストより最後の行を取得後、その行をさらに分解 ヒロ 2003/10/09(木) 20:41


ディレクトリに決まった形式の名前(日付付き)でファイルが格納されていて、そのファイル群から一番最後に更新されたファイルのファイル名を取得して、その取得したファイル名をさらに分解して変数に格納したいですが・・・

ディレクトリの中
----------------------------------------
A20031001
A20031101
A20031201
A20040101
A20040201 => 今回この名前を取得したい
----------------------------------------

さらに取得した「A20040201(=Ayyyymmdd)」を
yy(西暦下2桁)
mm
dd
のように分解して変数として格納したいです。

dir /B /OD > file.txtにリダイレクトして、その出力ファイルを何とか編集すれば良いのだろうか?とは考えたのですが、そこから見当が付きません。皆様から良きアドバイスを頂けたらと存知ます。
OSはWindows2000です。

687) Re:テキストより最後の行を取得後、その行をさらに分解 ふぇむ 2003/10/09(木) 23:20


>ディレクトリに決まった形式の名前(日付付き)でファイルが格納されていて、そのファイル群から一番最後に更新されたファイルのファイル名を取得して、その取得したファイル名をさらに分解して変数に格納したいですが・・・


こんな感じですかね.....
ソートは「名前逆順」がよかろうと思います。


@echo off

setlocal

set TARGETDIR=tgt

for /F "tokens=*" %%z in ( 'dir "%TARGETDIR%" /b /o:-n' ) do (
set PICKUP=%%z
goto :exit_for
)
:exit_for

echo pickup = %PICKUP%

set YY=%PICKUP:~3,2%
set MM=%PICKUP:~5,2%
set DD=%PICKUP:~7,2%

echo 分解 = %YY% %MM% %DD%


goto :end


:end

endlocal


688) Re2:テキストより最後の行を取得後、その行をさらに分解 ヒロ 2003/10/10(金) 10:47


ありがとうございます!
実行してみたらうまくいきました。

%%zって最後の値って意味になるんですね。
あと、echoで指定の文字数だけを出力できるのも知りませんでした・・

大変勉強になりました。


689) Re3:テキストより最後の行を取得後、その行をさらに分解 ふぇむ 2003/10/10(金) 15:12


>%%zって最後の値って意味になるんですね。

いやそれは違います。先のサンプルでたまたま私が変数として z を使ったというだけです。順番を決めているのは次のところですよ。

'dir "%TARGETDIR%" /b /o:-n'

と for文中の

goto :exit_for

です。前者で、名前降順のリストをつくって、後者でその1行目を処理するや脱出しているわけです。
 
 


カテゴリー「DIR…ディレクトリ(フォルダー)/ファイルの一覧」索引へ
カテゴリー「FOR /F」索引へ
カテゴリー「SET, PATH, %環境変数%」索引へ
カテゴリー「バッチファイルの文法と環境変数」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2003年10月09日 11:51に投稿されたエントリーのページです。

ひとつ前の投稿は「ファイル内の特定番地から指定の長さの文字列を抽出したい」です。

次の投稿は「サイズ0バイトのCONFIG.SYS、AUTOEXEC.BATとその役割」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート