ファイルのパスのリストを含むファイル(list.txtなど)があります。
F:\users\user\desktop\f1.doc
F:\users\user\desktop\f2.doc
F:\users\user\documents\f3.doc
F:\users\user\documents\f4.doc
また、コンピュータに F: ドライブを接続しました。このドライブには、list.txt には表示されないこれらのファイルやその他のファイルが含まれています。
list.txt リストに属さない F: ドライブ上のすべてのファイルをコピーしたいのですが、フォルダー構造はそのままにします。
「copy-item F:\users\user\desktop\f2a.doc -destination C:\copied\users\user\desktop\f2a.doc」のようなものですが、F: ドライブ上のすべてのファイルが対象です。
-exclude が意図したとおりに機能しないため、 -filter を使用する必要があると思いますが、方法がわかりません。どんな助けでも大歓迎です。
カマル
これが私がこれまでに持っているコードです:
$file = "list.txt"
$target = "c:\コピー済み\"
$prevDir = "c:\dummy"
$count = 0
foreach ($line in Get-Content $file){
$currDir = (Get-ChildItem $line).Directory
if ($currDir -ne $prevDir) {
$files = Get-ChildItem $currDir -Recurse
foreach ($item in $files) {
if ($item -ne (Get-ChildItem $fullPath).Name) {
Copy-Item $item.FullName -Destination $target + $line
$count++
}
}
}
$prevDir = $currDir
}
</pre>