現在は拡張子指定のコピーにてフォルダへのコピー処理していますが、コピーする
ファイル数が毎週増えていくので時間がかかります。定期的にコピー元フォルダの古
いファイルを手動削除していくことで対応していますが、なにか方法があればと思い
質問した次第です。
よろしくお願いします。
> あるフォルダに毎週あるファイルが作成されます。このファイルは頭3文字が同じで
> 残り乱数の同じ拡張子のファイルです。このフォルダ中の最新日付のファイルのみ別
> フォルダにコピーしたいのですが、DOSコマンドの組み合わせにて可能でしょうか?
最新のだけを DOS コマンドで、というのは難しいと思います。
UNIX ライクなコマンド群を使うとか、WSH や perl などで簡単なプログラムを
書くとかする必要があると思います。が、
> 現在は拡張子指定のコピーにてフォルダへのコピー処理していますが、コピーする
> ファイル数が毎週増えていくので時間がかかります。
というのが問題ならば、xcopy コマンドの /m とか、/d とかが使えると思います。
補足
/m の説明にある「アーカイブ属性」というのは、ファイルが更新されたときに
必ず ON になるもので、特定のファイルであらかじめこの属性を OFF にして
おけば、「ON に変わった=そのファイルの内容に変更があった」という識別が
可能です。昔はこれを利用して HD のバックアップなどをしたものでした。
========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta [PC] mailto:delm...@ht.sakura.ne.jp
In article <anleer$50q$1...@bgsv5906.tk.mesh.ad.jp>,
pros...@hotmail.com writes:
> あるフォルダに毎週あるファイルが作成されます。このファイルは頭3文字が同じで
> 残り乱数の同じ拡張子のファイルです。このフォルダ中の最新日付のファイルのみ別
> フォルダにコピーしたいのですが、DOSコマンドの組み合わせにて可能でしょうか?
どこまで古いDOSかによりますが、バッチでcallが使えるものなら…、
下記のバッチで、カレントディレクトリの最新のファイル(隠しファイルとディ
レクトリ除く)の名前を環境変数nにセットできますので、あとはそれを使ってど
こかへコピーなり何なりして下さい。但し、一時ファイル用のディレクトリをカ
レントディレクトリ以外のところにあらかじめ作っておいて、そのディレクトリ
名を環境変数TMPにセットしてあることが前提です。
callが使えないくらい古いDOSなら、下記のバッチの途中でtmpb.batができた
ところから、その続きの処理をtmpb.batの先に何とか書き足して、tmpb.batを呼
びましょう。
# もちろん、DOSの標準コマンドだけにこだわらずに、UNIX風ツールなどを援用
# する方がもっと手っ取り早くはあります。
ni...@ics.nara-wu.ac.jp
------------------------------------------------------------------------
@echo off
echo T_OOWW3=XXWXPY50PPZ5jQP_-ys,A1Ea5y852cP4Z4PP-pV40P-BOu>%tmp%\tmp.com
echo com2txt/Nide5UqPWX,wP500-MQP4UP-wx4XP5rjP5Z2P-jC,JP=>>%tmp%\tmp.com
echo 5O4,APRX5BZP-pJPPQX42P-r=PRX55aP59DHHP-99,UP-lt,mP-uq=>>%tmp%\tmp.com
echo P5_VHP-4A40PTZ,TPP_RX__ohD45Jp8HGS9O4et7tyVkCp.14.8BWP>>%tmp%\tmp.com
echo DO4uu8tzHMEh9ugTCnhHAmDzy44CMHWHnzCP4mD5MHWHPNqZX4GKq1>>%tmp%\tmp.com
echo _H9CiX42ngkzd6xCPjkb86z_4DkrklA4KQ4sREr4944O34AmDsMHXl>>%tmp%\tmp.com
echo Vf4BKCiX4oix4oxHAkJhbpGWzpwMe1BAnORhnJ.4:>>%tmp%\tmp.com
%tmp%\tmp > %tmp%\tmpb.bat
del %tmp%\tmp.com
call %tmp%\tmpb
echo newest file is %n%
del %tmp%\tmpb.bat