batファイルで以下の処理を実行したい

1.現在の日付(システム日付)を取得して指定したネットワークドライブの中にあるフォルダ上に新規フォルダを作成(2015****等)
2.別ドライブに保存されているファイル(20個弱)を作成したフォルダの中にコピー
3.2でコピーしたファイルをデスクトップにコピー

以上のことを実現したいです。
1をフォルダ固定でコピーするという前提だとxcopyで実現できました。
1を日付で変動する名前にした場合は保存するパスが変更されると思うのですが、どうすれば良いでしょう?
copy のパス部分に%CD%や%作成したフォルダ名%という変数を入れてしまうとbatファイルが正常にどうさしてくれません。
対応方法をご教示願います。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/07/01 10:55:05

回答1件)

id:Bookmarker No.1

回答回数191ベストアンサー獲得回数34

日付の変数への設定・展開は、例えば以下のようにできますが、もしかしてIF文やFOR文の中で変数を設定/変更しようとしていますか?
そうなら遅延展開する必要がありますので、set文とsetlocal文のヘルプを読めばわかると思います。
また、VisualBatを使うとデバッグがし易いと思います。

@echo off
setlocal

rem 変数設定
set dt=%date:/=%
set dt=%dt: =0%
set tm=%time::=%
set tm=%tm:.=%
set tm=%tm: =0%
set dst_dir=%dt%_%tm%

rem 変数展開
echo %dst_dir%

endlocal

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません