2011-08-31 7 views
1

コンピュータ名とアンダースコアと日付スタンプで始まるDOSバッチファイルを使用してディレクトリの内容をコピーしようとしています。私の最初の衝動はいくつかのバリエーションでした:日付スタンプを持つディレクトリをコピーするには

copy D:\%Computername%_\*\\*.* C:\WhateverPath 

もちろん、私はこれを動作させることができませんでした。シンプルな問題のようですが、私はバッチファイルやDOSで多くの経験がありません。

+0

なぜこれが機能しないのかは、ファイル名でのみディレクトリ名にワイルドカードを指定できないためです。 タイムスタンプが複数あるフォルダが複数ある場合は、指定してください。そして、これらのフォルダ内のすべてのファイルが同じフォルダに入ることを望みますか?それらを同じタイムスタンプのフォルダに移動しますか? – Mechaflash

答えて

1

試してみてください。C:\WhateverPath

FOR /d %d IN (D:\%COMPUTERNAME%_*) DO xcopy %d C:\WhateverPath /E 

このD:\下のパターン%COMPUTERNAME%_*と(それゆえ/d)すべてのディレクトリを反復、およびコピーこれらのディレクトリの内容を。 /Eは、すべてのファイルとディレクトリをコピーするためのもので、空のものもコピーします。

xcopyのドキュメントについては、DOSシェル(cmd)にxcopy /?と入力してください。

注:あなたはバッチファイル(something.bat)でこれを入れている場合は、上記のコードで%%d%dを交換する必要があります。単一のフォルダにその内容のすべてを移動し、あなたがこれを行うことができ、その後

1

あなたが複数のフォルダを持っている場合は、C:\%computername%_%random_time_stamp%\を標識し、あなたはそれらのそれぞれにアクセスする必要があります。

パスで唯一のアンダースコアが間に1つである考えます何のヘッダ情報、/意味ないコマンドDIR、/ bスイッチから来ているすべての結果のために述べ%のコンピュータ名%と、あなたのタイムスタンプ

FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /b /a:d "C:\" ^| FIND /I "%computername%_"`) DO (
COPY /y "%%~fF\*" "C:\WhateverPath\" 
) 

:だけ返すディレクトリを意味するdは、私が持つフォルダのみを検索したいですそれにcomputername_を入れて、それぞれのフォルダの内容をC:\ WhateverPaにコピーしたいth \フォルダー。

関連する問題