Как скопировать файлы в новую папку и переименовать их - PullRequest
0 голосов
/ 26 сентября 2019

Я совершенно новичок в powershell, и меня спросили, могу ли я попробовать написать скрипт для копирования файлов конфигурации файлов из одной папки в новую и переименовать их, удалив определенную часть имени.

Пока я получил его, чтобы скопировать файлы, подпапки и поместить все файлы в правильные подпапки в новом месте.Но у меня возникают проблемы с получением кода для переименования файлов.

Я либо получаю сообщение об ошибке, указывающее, что путь пуст, либо он заменит файл в последней папке переименованной версией файла из первой папки, затем выдает ошибку, говоря, что исходный файл не существует.

Set-Variable -Name sourcedir -Value "C:\Test"
Set-Variable -Name targetdir -Value "C:\TestCopy"
Set-Variable -Name oldname -Value "_Original"
Set-Variable -Name newname -Value "_copy"


Get-ChildItem $sourcedir -filter "*.txt" -recurse | 
    foreach{
        $targetFile = $targetdir + $_.FullName.SubString($sourceDir.Length);
        Copy-Item $_.FullName -destination $targetFile
    }

Get-ChildItem -Path $targetdir -filter "*.txt" -recurse | 
    foreach{
        $targetFile = $targetdir + $_.FullName.SubString($targeDir.Length);
        Rename-Item $targetFile.FullName -NewName ($_.name -replace $oldname, $newname)
    }

Код выше использует мой тестовый пример.У меня есть каталог с тремя папками, и у каждой папки есть текстовый файл.

Для чего нужно скопировать структуру каталогов, вставить ее в новое место, а затем переименовать часть файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...