2016-11-25 10 views
1

こんにちは皆:)私は解決するために次の問題があります。 :常にリフレッシュしてからファイル内のフォルダを自動的にコピーする必要があります。私はこれを毎週1回(例えば毎水曜日)にやりたいと思っています。ファイルを現在の日付であるフォルダにコピーする必要があります。私の考えは次のとおりです。コピーコマンドでバッチファイルを作成し、フォルダを作成してタスクスケジューラに取り込みます。バッチファイルのフォルダコピーが自動的に

バッチファイルコード:

d: 
cd testfolder 
SET datefolder="%date% 
mkdir %datefolder% 
xcopy "d:\folder\from copy" "d:\folder\to copy" /E /H /C /R /Q /Y 

このコードは、現在の日付でフォルダが生成されます。 (2016. 11. 25)にスペースを入れてください。

問題は、変更するフォルダ名をパスに追加する方法がわかりません。このような

何か(これは動作しません!)の助けを

xcopy "d:\folder\from copy" "d:\folder\to copy\%datefolder%" /E /H /C /R /Q /Y 

どうもありがとう:)

答えて

0
SET "datefolder=%date%" 
mkdir "%datefolder%" 
xcopy "d:\folder\from copy" "d:\folder\to copy\%datefolder%\" /E /H /C /R /Q /Y 

`セット "VAR =値" 構文が不要な末尾のスペースを防ぎます割り当てられた値に含まれます。格納された値には引用符は含まれません。このようにして、見積もりを制御することができます。

0

いくつかの問題があります。取得したエラーメッセージは指定していませんが、setコマンドの一重引用符が原因であるようです。 xcopyコマンドに入れて、3つの引用符(1つが不一致)のパラメーターがあり、それが機能しません。

%date%をxcopyコマンドに入力するだけで済みます。 %datefolder%に設定する必要はありません。それ以外は、日付形式に従ってサブフォルダを作成します。私にとっては、echo %date%は "ddd MM/dd/yyyy"と表示されます。つまり、ddサブフォルダともう1つのサブフォルダyyyy​​になります。それはxcopyコマンドで動作しますが、あなたが求めたものと正確には異なります。

これで十分でない場合は、datefolder形式を2つの方法のいずれかで作成する必要があります。 %date%を解析し、部分文字列抽出(help setを参照)またはトークン(help forを参照)を使用するか、powershell呼び出しを行うことができます。

例1:

for /f "tokens=1-4 delims=/ " %%a in ("%date%") do set datefolder=%%d. %%b. %%c 

例2:

for /f "delims=" %%a in ('"powershell [DateTime]::Now.ToString('yyyy. MM. dd')"') do set datefolder=%%a 

編集:また\を使用して保存先フォルダを終了したいと思うようにxcopyのは、それがディレクトリだ知っています。速い答えを

0

感謝:)

はい、右のこのバージョンでは動作しませんthatsの:

SET "datefolder=%date%" 
mkdir "%datefolder%" 
xcopy "d:\folder\from copy" "d:\folder\to copy\%datefolder%\" /E /H /C /R /Q /Y 

しかし、これは動作します:

echo 
d: 
cd testfolder 
SET datefolder="%date%" 
mkdir %datefolder% 

xcopy d:\folder\from copy d:\folder\to copy\%datefolder% /E /H /C /R /Q /Y 

私は日付を指定する必要があります変数では、私のために他の方法では動作しません。 (年月の3つのフォルダを作成します)すべての ""記号がxcopyコマンドの問題でした。

関連する問題