3

私は Powershell の初心者であり、ネットワークからローカル マシンにファイルをコピーするためのかなり単純なスクリプトと思われるものを実行しています。

$htmPath = "\\ServerPath\foo\WebHelp\"
$dstPath = "C:\LocalPath\foo\WebHelp\"
Copy-Item $htmPath $dstPath -recurse -force

ただし、すべてのデータはC:\LocalPath\foo\WebHelp\Webhelp\; WebHelp私のコピーは、内容をコピーするのではなく、ディレクトリの新しいインスタンスを作成しているようです。それは正常ですか?なぜそれが起こっているのですか?フォルダー名ではなく、フォルダーの内容のみをコピーするようにスクリプトを変更するにはどうすればよいですか?

たとえば、filesNOT\WebHelp\filesからのみコピーしたい場合\\serverpath\foo\WebHelp\files。エンディングを追加または削除し、代わりに\使用するというさまざまな繰り返しで失敗しました。コピー中に親フォルダー名がパスに追加されないようにするための適切な構文は何ですか?copycopy-item

4

2 に答える 2

1

まず、スイッチ-WhatIfは、コピーに関するテスト目的で情報を表示できます。

2番目: ディレクトリをコピーするときに、ファイルごとにファイルを実行する必要はありません。ファイルごとに移動する場合は、$htmPath\*子アイテムを取得するために使用できます。またはGet-ChildItem

dstPath を次のように設定できます"C:\LocalPath\foo\"

于 2013-06-18T12:50:01.617 に答える
0

あるフォルダーから別のフォルダーにコピーするときに、さまざまな結果を得るために使用できるさまざまなオプションがあります。

$htmPath = "\\ServerPath\foo\WebHelp\"
$dstPath = "C:\LocalPath\foo\WebHelp\"
Copy-Item $htmPath $dstPath -recurse -force

コードは、宛先パスにコピーする htm パス フォルダーとそのファイル/サブフォルダーを明示的に選択しています。

Copy-Item $htmPath\* $dstPath -recurse -force

from パスを end に変更する\*と、htm パス ファイルとサブフォルダーを目的のパスにコピーするという目的の結果が得られると思います。

サブフォルダーではなくファイルのみが必要な場合は、 を削除し-recurseます。

ある場所から別の場所へのコピーの詳細については、こちらをご覧ください。Copy-Item コマンドの情報はこちら.

于 2014-04-10T17:23:07.377 に答える