Я пытаюсь скопировать одну папку с каждой подпапкой и файлами в другой каталог. Теперь я хочу переименовать скопированную папку по определенной схеме.
Например, папка предназначена для категории Train, я хочу добавить к имени B_.
На данный момент у меня есть следующее:
$PathFolder = $FileBrowser.SelectedPath
# $PathFolder2 = "B_" + $FileBrowser.SelectedPath
$PathDestination = "C:\Users\*\Desktop\"
$charCount = ($PathFolder.ToCharArray() | Where-Object {$_ -eq '\'} | Measure-Object).Count
$FolderName = $PathFolder.split('\')[$charCount]
if ($CB_Bahnlinien.Checked) {
$x = Copy-Item -Path $PathFolder -Destination $PathDestination -Recurse -Force -PassThru | Rename-Item -NewName "B_$FolderName" -Verbose
# $x = Rename-Item -Path "$PathFolder" -NewName "B_$FolderName" -PassThru | Copy-Item -Path $PathFolder2 -Destination $PathDestination -Recurse
if($x) {
$error_msg = $error[0].exception.message
[System.Windows.Forms.MessageBox]::Show($error_msg,"Achtung!",0)
} else {
[System.Windows.Forms.MessageBox]::Show("Erfolgreich kopiert " + $FolderName,"",0)
}
}
Проблема в том, что он копирует папку с содержимым и, кроме того, создает новую папку с таким именем, как и должно быть, но без содержимого. И даже не копирует все из папки ?!
Rename-Item
переименует все файлы с тем же именем, что иB_$Foldername
. Возможно, вам будет лучше использоватьgci
, чтобы получить список файлов, а затем дать новое имя в качестве цели дляCopy-Item
. - person Mark Elvers   schedule 01.02.2021Get-ChildItem | Copy-Item
конвейера. Удалите линиюWhere-Object
и при необходимости отрегулируйте$destinationSubDirPath
. - person zett42   schedule 01.02.2021