需要源目錄$source
比較$dest
看什麼.wav
文件是源,但不是目標。我要複製那些沒有目標到目標以及第三目錄$sharefolder
文件。這是我到目前爲止。看來,copy-item
是把所有的差異成一個複製串:PowerShell的 - 比較源和目標目錄中的.txt文件。複製已經不在目標的所有文件複製到目標和第三目錄
$sharefolder = '\\isilon1\blob\partial_dictation'
$comparefolder = '\\isilon1\blob\partial_dictation_compare'
$source = Get-childitem \\isilon1\blob\dcbld\pv -filter *.wav -recurse
$dest = Get-ChildItem \\isilon1\blob\Partial_Dictation_Compare -filter *.wav -recurse
$diff = Compare-Object $dest $source -passthru | Where-Object {$_.SideIndicator -EQ "=>"} | % {$_.FullName}
ForEach-Object {
Copy-Item "$diff" "$comparefolder" -WhatIf
Copy-Item "$diff" "$sharefolder" -WhatIf
}
這是我得到,如果我因爲這些文件不在目標echo $diff ;
\\isilon1\blob\dcbld\pv\-D\CB\LD\-9\94\1.wav
\\isilon1\blob\dcbld\pv\-D\CB\LD\-9\94\2.wav
這是正確的。當複製項目運行時,它給出了這樣的:
拷貝項目:找不到路徑「\ isilon1 \斑點\ dcbld \ PV-d \ CB \ LD-9 \ 94 \ 1.wav \ isilon1 \ blob \ dcbld \ pv-D \ CB \ LD-9 \ 94 \ 2.wav',因爲它不存在。
我從Unix未來所以這是新的我。
非常感謝你培根位......你能解釋一下$ _代表什麼 –
'$ _'是一個特殊的變量(參見'Get-Help about_Automatic_Variables',雖然這裏沒有太多的介紹)。它意味着「管道中的當前物體」。它主要用於'ForEach-Object'和'Where-Object',但這些都是非常常見的小命令。 –