[前の記事]« バッチファイルでWindows2000のSPバージョンチェック/HDDの空き容量を調べる方法
[次の記事]ファイル名に&が含まれているとバッチ処理が中断されてしまう »

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

▲カテゴリー「CHDIR/CD/MD/RD…ドライブ/ディレクトリ切替、パス名の取扱い」索引へ
▲カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ

前月名のフォルダをMM形式で作成したい

591.
前月名のフォルダをMM形式で作成したい
2005年07月04日(月) 11時03分
うぇぶ
wXP Pro+SP2 を使用しています。

毎月1日に、あるフォルダ内のログファイルを、前月名のフォルダを作成し、移動しています。

たとえば7月1日の場合、6月のファイルを06フォルダへ移動します。(以下のコマンドを、フォルダ名を変えて毎月実行)

cd c:\log\2005
mkdir 06
move *.log .\06

これを自動化したいのですが、「前月のフォルダ名をMM形式で」作成できません。

要するに 01、02、03・・・12 としたいのですが
以下のようにすると、"06"ではなく、1桁の"6"になってしまいます。

set M=%DATE:~5,2%
set /a M-=M
mkdir %M%

前月の月名を、2桁で取得することは可能でしょうか?
593.
Re:前月名のフォルダをMM形式で作成したい
2005年07月04日(月) 16時00分
otn
>wXP Pro+SP2 を使用しています。
>
>毎月1日に、あるフォルダ内のログファイルを、前月名のフォルダを作成し、移動しています。
>
>たとえば7月1日の場合、6月のファイルを06フォルダへ移動します。(以下のコマンドを、フォルダ名を変えて毎月実行)
>
>cd c:\log\2005
>mkdir 06
>move *.log .\06
>
>これを自動化したいのですが、「前月のフォルダ名をMM形式で」作成できません。
>
>要するに 01、02、03・・・12 としたいのですが
>以下のようにすると、"06"ではなく、1桁の"6"になってしまいます。
>
>set M=%DATE:~5,2%
>set /a M-=M
>mkdir %M%
>
>前月の月名を、2桁で取得することは可能でしょうか?

M-=M は M-=1 のタイプミスだと思いますが、他にも問題があります。
☆set /a では先頭ゼロの数字は8進数だと見なされる
set M=08
set /a M-=1
で、Mは-1になります。(8は8進数として不正な数字なので無視されて、Mの値として0だけが有効になり、0から1を引いて-1になる)

先頭がゼロにならなければいいので、先頭に1をつけて100の台の数にします。
set Y=%DATE:~0,4%
set M=%DATE:~5,2%
set /a M=1%M%-1
rem 年またぎの考慮
if %M%==100 set /a Y-=1,M=112
rem M は 101~112の数になるのでその右から2文字を取り出す
set M=%M:~-2%
cd c:\log\%Y%
mkdir %M%
move *.log %M%
604.
Re:前月名のフォルダをMM形式で作成したい
2005年07月08日(金) 14時17分
うぇb

自力で作ったやつはまったくダメでしたか・・・

さっそく利用させていただきます
ありがとうございました
 
 


カテゴリー「CHDIR/CD/MD/RD…ドライブ/ディレクトリ切替、パス名の取扱い」索引へ
カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2005年07月04日 01:48に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイルでWindows2000のSPバージョンチェック/HDDの空き容量を調べる方法」です。

次の投稿は「ファイル名に&が含まれているとバッチ処理が中断されてしまう」です。

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

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