0

バックアップの場所に移動する必要がある一連のファイルがあります。get-childitem コマンドを使用して、目的のアイテムの配列を収集しています。収集したアイテムのリストの準備ができたら、robocopy を使用してアイテムを移動しようとしています。

$paths=@()

$srcitems = get-childitem $paths 

robocopy $srcitems $dest /move

これは機能しますか?
そうでない場合、個々のアイテムにパイプしてロボコピーする最良の方法は何ですか?

ありがとう
スティールユーザー

4

4 に答える 4

2

同様のシナリオ、役立つ場合に備えて投稿:

「Friday」で始まるいくつかのフォルダーとその中のアイテムをソースから宛先にコピー(移動)する必要があり、これが機能しているように見えます。

Get-ChildItem T:\ParentFolder -Filter "Friday*" -Name | ForEach-Object { robocopy "T:\ParentFolder\$_" "E:\$_" /z /s /MOVE }
  • 「Get-ChildItem」の部分には、「Friday」(-Filter「Friday *」)で始まるフォルダー名(-Name)が一覧表示されます。
  • これはForEach-Objectにパイプされ、見つかったすべてのインスタンスに対してrobocopyが実行されます。
  • robocopy / MOVE引数は、明らかにフォルダー/ファイルを移動します。

私はPowershellにかなり慣れていません。より良い方法があるかどうかわからない。スクリプトはまだ実行中ですが、これまでのところ良好です。

@walid2miはMove-Itemを使用しています。私はrobocopyb/ cが好きで、再起動可能なモード(/ Z)があります。

于 2011-09-22T02:48:44.170 に答える
2
           Usage :: ROBOCOPY source destination [file [file]...] [options]

         source :: Source Directory (drive:\path or \\server\share\path).
    destination :: Destination Dir  (drive:\path or \\server\share\path).
           file :: File(s) to copy  (names/wildcards: default is "*.*").

Robocopy は、ソース ディレクトリ、宛先ディレクトリ、およびファイル仕様を引数として想定しています。「収集したアイテムのリスト」がどのように見えるかを知らずに、決定的な答えを出すことは困難です. ソース ディレクトリの場合は、robocopy を呼び出してそのリストを foreach し、ファイル名のワイルドカード仕様をハードコーディングできます。ファイルのリストがある場合は、それらをディレクトリ/ファイルに分割し (分割パスを使用します)、ソース ディレクトリごとに robocopy を呼び出し、その中のファイルのリストを指定する必要があります。ディレクトリ。

于 2011-02-16T11:33:42.387 に答える
-1

ロボコピー

Get-ChildItem $paths | Move-Item -Destination $dest  -WhatIf
于 2011-02-16T08:27:15.447 に答える