人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【フリーウエア】WIN XPの環境で任意のフォルダーにファイルを放り込むとそのフォルダー名+日付でファイル名を生成してくれるような便利なフリーウェアはありますでしょうか。

例えば、

フォルダー名 「はてな」
日付 2007/07/10
ファイル形式 JPG

ファイル名 はてな2007/07/10JPG


となるようなフリーウェアがあると嬉しいのですが。
こんなこと出来るのでしょうか?

●質問者: toomuchappy
●カテゴリ:コンピュータ インターネット
✍キーワード:jpg WIN XP はてな ファイル
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● kumankuman
●1ポイント

http://www.vector.co.jp/soft/winnt/util/se388808.html

◎質問者からの返答

ファイルはJPGに限らずPDFなどいろいろです。

あるのかなぁ?。


2 ● memo77
●23ポイント

リアルタイムに監視したいということでしょうか?

それであれば「フォルダ監視」とリネームソフトを組み合わせればできますね。

http://www10.plala.or.jp/tukaeru/foldersmanual/

これで監視して、リネームソフトにファイルを渡すように設定できます。


フォルダ名をファイル名につけてくれたり日付をつけてくれたりするのはいろいろあるので

http://www.vector.co.jp/vpack/filearea/win/util/file/name/

ここからご自由に。


またリネーム用としては出てきませんが、Vixという画像閲覧ソフトのリネームは強力です。

◎質問者からの返答

ありがとうございます。

これから内容を調べてみます。


3 ● airplant
●100ポイント

スクリプト(バッチファイル)でできます。


下記の仮定にてサンプルを作りました。

日付=当日。

ファイル名称=[フォルダ名]+[/を外した日付].[元の拡張子]

1回当たりの変更ファイルは1つ。

ファイル日付で作ることもできます。スクリプトの一部をNoに変更してください。

今のままだとファイル日付にしても当日日付にしても、ファイル名が同じになってしまうのが出てきますが、それはいいのでしょうか?

1日1個ならいいかも知れませんね。何個も一気にやるのであれば、時刻もつけるかファイル名の一部を残すなどに仕様を変えて、繰り返し処理にすれば動きます。

Rem ファイルを[フォルダ]YYYYMMDD.[元ファイル拡張子]に変更するバッチ
Rem 起動方法:バッチファイル名 パス名\ファイル名
Rem 最後のpauseはうまく動いたかの確認用。動くことが確認できたら行を削除する。

Rem 「日付」が当日の意味なら下記をNoに変更する。ファイル日付の意味ならYesのまま。
set Filedate=Yes

if not %Filedate%==Yes goto today
for /F "usebackq delims=/ tokens=1-3" %%i in (`echo %~t1`) do set yyyymmdd=%%i%%j%%k
rem 時間を削除
for /F "usebackq tokens=1" %%i in (`echo %yyyymmdd%`) do set yyyymmdd=%%i
goto getdir
:today
for /F "usebackq delims=/ tokens=1-3" %%i in (`echo %date%`) do set yyyymmdd=%%i%%j%%k

:getdir
Rem 下のforの&と変数の間にはスペース入れないこと。なお5階層までのみ動作。
for /F "usebackq delims=\ tokens=1-5" %%i in (`echo %~p1`) do (set d1=%%i& set d2=%%j& set d3=%%k& set d4=%%l& set d5=%%m)

if not "%d1%"=="" set DirName=%d1%
if not "%d2%"=="" set DirName=%d2%
if not "%d3%"=="" set DirName=%d3%
if not "%d4%"=="" set DirName=%d4%
if not "%d5%"=="" set DirName=%d5%

set Target=%DirName%%yyyymmdd%%~x1
pause ren %1 %Target%
ren %1 %Target%
pause

利用方法

  1. 上記をxxx.batに落として、適当なフォルダに置く。
  2. そのままxxx.batへファイルをドラッグすると動く。
  3. お勧めは、ショートカットをsendtoフォルダへコピーして、送るで使うことです。
    sendtoフォルダは隠し属性になっているので、エクスプローラで隠し属性を外してから、ショートカットを放り込んでください。
    ここにあります→C:\Documents and Settings\user名\SendTo

http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%83%81%E3%83%9...

◎質問者からの返答

ありがとうございます。

スゴイですね。これだからHatenaはやめられませんね。素晴らしい!!

これから内容を確認してみます。感激です。

一つ質問がございます。

一日何本もあるので

Hatena20070711A 又は Hatena20070711-1

Hatena20070711B 又は Hatena20070711-2

とかに出来るのでしょうか。


4 ● airplant
●100ポイント ベストアンサー

Windowsの標準スクリプトだと中々大変です。

何とかできました。

ファイル名称=[フォルダ名]+[実行日日付]-[連番].[元の拡張子]

1回当たりの変更ファイルはn個。

次の制限があります。

Rem ファイルを[フォルダ]YYYYMMDD-#.[元ファイル拡張子]に変更するバッチ
Rem 日付の後は拡張子に関係なく連番を振る
Rem ファイル個数で連番を振っているので、一度作ったものを消すとうまく動かない!

Rem 起動方法:バッチファイル名 パス名\ファイル名 [パス名\ファイル名...]
Rem 最後のpauseはうまく動いたかの確認用。動くことが確認できたら行を削除する。
Rem 「日付」は当日の意味。

set TempAns=temp.tmp

Rem DirName←ディレクトリ名
Rem 下のforの&と変数の間にはスペース入れないこと。なお5階層まで動作。
for /F "usebackq delims=\ tokens=1-5" %%i in (`echo %~p1`) do (set d1=%%i& set d2=%%j& set d3=%%k& set d4=%%l& set d5=%%m)

if not "%d1%"=="" set DirName=%d1%
if not "%d2%"=="" set DirName=%d2%
if not "%d3%"=="" set DirName=%d3%
if not "%d4%"=="" set DirName=%d4%
if not "%d5%"=="" set DirName=%d5%

Rem yyyymmdd←当日
for /F "usebackq delims=/ tokens=1-3" %%i in (`echo %date%`) do set yyyymmdd=%%i%%j%%k

:repeat
Rem 当日入れたファイルの数を数える
dir %~d1%~p1%DirName%%yyyymmdd%-*.* > %TempAns%
for /F "usebackq tokens=3" %%i in (`find /c "%yyyymmdd%-" %TempAns%`) do set n=%%i
set /a n=%n%+1
del %TempAns%

set Target=%DirName%%yyyymmdd%-%n%%~x1
pause ren %1 %Target%
ren %1 %Target%

Rem 複数ファイルだったら繰り返す
shift
if not "%1"=="" goto repeat

http://www.google.co.jp

◎質問者からの返答

airplant さま

大感謝です。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ