2016-12-02 6 views
1

コード罰金新しい宛先に共通のテキストをコピーし、それらのフォルダの内容をすべての特定のビットを持っているディレクトリ内のすべてのフォルダのこの行の「XCOPY」。使用して「移動」コマンドの代わりに、ループ

dir /b /s /a:d "\\SERVER\Path\Directory\*FolderTag" | for /f "delims=\; tokens=3,4,5*" %%a in ('findstr FolderTag') do @xcopy /i /s /y "\\SERVER\Path\Directory\%%b\%%c" "E:\%%b\" 

これは魅力的です。しかし、ファイルをコピーして元の場所から削除するのではなく、ファイルを移動できるようにしたいと考えています。私は単にmovexcopyを置き換えることはできませんが、私は移動して動作するものにこのループの構造を変換する方法を見つけ出すことはできません。ファイルを削除する別のループを書く方が簡単でしょうか?私はrm代わりのxcopyが働くことはないだろうと私はいつもrmに触れ少し怖いです。

私は、実施例のバッチスクリプトを一緒に入れてみましたが、ループはパス構造にそれほど依存しているので、私はそれを動作させることができませんでした。だから、基本的に私の質問は、このループ内xcopyの私の実装を中心に展開し、その場所にmove仕事をできるようにする方法を変更することができます。

+0

'move'はディレクトリに関しては正確に振る舞いませんので、' xcopy'を維持して '&& rm/S/Q"を追加する方が信頼性が高くなります。\\ SERVER \パス\ディレクトリ\ %% B \ %% C "' ... – aschipfl

+0

@aschipflは、だからそれが追加されるだろう直接AF残りのループは? の 'dir/B/S/D: "\\サーバー\パス\ディレクトリ\ * FolderTag" |用/ F "delims = \;トークン= 3,4,5 *" %%で( 'findstrのFolderTag')やる@xcopy/I/S/Y「\\サーバー\パス\ディレクトリ\ %% B \ %% C」 "E:\ %% B \" && RM/S/Q "\\サーバー\パス\ディレクトリ\ %% B \ %% C \ %% D" '? 私はそれにいくつかのエラーを取得していますので、私は尋ねます。 – Neal

+0

また、 'rm'はウィンドウコマンドではありません。その「デル」。 – Neal

答えて

1

移動が動作するはずですが、あなたはまた、最初

に移動しているフォルダを作成する必要があり、あなたはブラケットに

を使用してforループの各反復上で実行される複数のコマンドを持っているので、次のことができます

dir /b /s /a:d "\\SERVER\Path\Directory\*FolderTag" | for /f "delims=\; tokens=3,4,5*" 
%%a in ('findstr FolderTag') do (
mkdir "E:\%%b" 
@move /Y "\\SERVER\Path\Directory\%%b\%%c" "E:\%%b\" 
) 
関連する問題