• ベストアンサー

ファイルコピー

c:\nepiaフォルダ内にある最新のファイルをコピーしたいんですが、タイムスタンプが一番新しいファイルをコピーする事は可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.3

#2です。こういうのはvbsでも書けますが、バッチのほうが向いてます。バッチだと2行。vbsだと20行くらいかな? for コマンドの説明は、コマンドプロンプトで、for /? とやると出てきます。長いので、for /? | more としたほうがいいでしょう。 まず、dir /b /od c:\nepia は、ファイル名だけを更新日付の古い順に表示するコマンドです。つまり最後に表示されたファイルが最新というわけです。 for /f %%F in ('dir /b /od c:\nepia') do set F=%%F というコマンドでは、そのdirの結果を1行ずつ取り出して、F という変数にセットする働きをします。処理が全部終わると最後のファイル名が F に残っているわけです。 ところが、for /f コマンドは行を空白で区切って単語ごとに処理をするのが標準仕様となっています。この空白による行の分解を止めさせるのが、"delims=" つまり区切り文字(デリミター)を空にします。"delims=," だと , で行を区切って処理する働きをします。 つまり、ファイル名は空白を含んでいるかもしれないわけですがそこで単語が区切られてしまわないように、"delims=" を指定します。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

GUIでやりたいんなら自明なんで、多分バッチ処理でやりたいんですよね? for /f "delims=" %%F in ('dir /b /od c:\nepia') do set F=%%F copy c:\nepia\%F% c:\target-folder

SUPERH2O
質問者

補足

DOSコマンドについてよく知らないので教えて下さい。 Dirについては理解する事は出来たのですが、delimsとはどういう処理をしているのでしょうか?

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

質問の趣旨は、今ひとつ掴めませんが。 カテゴリ的に何らかのプログラムからと言うことなのでしょうか? どういう状態でというか、想定している状況も不明なので。。。 一発で取れるか、ロジックを組んでとるか 何れにろ出来そうだとしか言えません。

SUPERH2O
質問者

補足

すみません。VBSで操作したいんですが、可能でしょうか?アドバイス下さい。

関連するQ&A