ネットワークフォルダ\\server\source
(すべてのネストされたフォルダ内のファイルを含む)からローカルフォルダC:\destination
へすべてのファイル(ただし、名前が*.doc
に一致するフォルダではない)をすべてコピーする必要があります。 C:\destination
であり、ネストされたフォルダはC:\destination
には作成されません)。 \\server\source
の異なるサブフォルダから同じ名前のファイルが複数ある場合は、最初のファイルのみコピーして上書きしないでください。後で見つかる競合するファイルはすべてスキップする必要があります(スキップしたファイルは、ネットワーク上で転送する必要があります。それ以外の場合は、時間がかかります)。ここではPowerShellでそれを実装する私の試みは次のとおりです。名前があまりにも*.doc
と一致特定のファイルをコピーするには(フォルダ階層なし)、既存のファイルを上書きしないでください。
- それをコピーするフォルダ:このコマンドを使用して、少なくとも二つの問題があります
cp \\server\source\* -Recurse -Include *.doc -Container:$false -Destination C:\destination
。
- 競合する名前の場合、後で見つかったファイルはネットワーク経由で転送され、前のファイルを上書きします。
これらの問題を解決する方法を提案できますか?
copy
,xcopy
,robocopy
,cscript
または*.bat
,*.cmd
の実装も歓迎します。
ローカルOSはWindows 8で、ファイルシステムはNTFSです。
スクリプトが2回実行されると、どのような動作が期待できますか?一度すべてをコピーする必要がありますか?それとも何もコピーしないのですか? –
@splatteredbits宛先ディレクトリは、最初は空であるとみなすことができます。この前提条件が満たされない場合、スクリプトの動作は未定義になる可能性があります。 –