[英]In PowerShell, how to copy a directory recursively and change its name at the same time
我具有以下目錄結構:
Foo +--Bar +--Baz +--Garply +--...
使用PowerShell,我想將Baz遞歸復制到Foo,並將其名稱更改為Qux,以獲得以下結構:
Foo +--Bar | +--Baz | +--Garply | +--... +--Qux +--Garply +--...
如果我打電話
Copy-Item .\Foo\Bar\Baz .\Foo\Qux -Recurse
我得到:
Foo +--Bar | +--Baz | +--Garply | +--... +--Qux +--Baz +--Garply +--...
這不是我所期望的。
我可以將目標定位為。\\ Foo並稍后將Baz文件夾重命名為Qux,但是這是一個額外的麻煩,並且存在名稱沖突的風險。
有沒有一種方法可以僅通過單個Copy-Item
調用來做到這一點? 還有其他簡單的選擇嗎?
Copy-Item .\\Foo\\Bar\\Baz .\\Foo\\Qux -Recurse
Qux
如果目錄Qux
已經存在,則Copy-Item .\\Foo\\Bar\\Baz .\\Foo\\Qux -Recurse
僅將Baz
置於Qux
下方。
嘗試這樣的事情:
$src = '.\Foo\Bar\Baz'
$dst = '.\Foo\Qux'
if (Test-Path -LiteralPath $dst -Type Container) {
$src += '\*'
}
Copy-Item $src $dst -Recurse
或根據目標文件夾是否存在使用單獨的復制語句:
if (Test-Path -LiteralPath $dst -Type Container) {
Copy-Item '.\Foo\Bar\Baz\*' '.\Foo\Qux' -Recurse
} else {
Copy-Item '.\Foo\Bar\Baz' '.\Foo\Qux' -Recurse
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.