Это, вероятно, легко, но я пытаюсь написать скрипт для использования при перемещении каталога для установленной программы с одного компьютера на другой.Чтобы сделать это, мне нужно найти каждый экземпляр старого имени хоста, старого IP-адреса и старой буквы диска со старой машины и заменить их новым именем хоста, новым IP-адресом и новой буквой диска нановая машина.Основная папка содержит файлы * .xml и * .config, которые необходимо редактировать как в основной папке, так и в подпапках.
Это код, с которым я работаю:
$oldIP = "192.168.1.2"
$newIP = "192.168.1.3"
$oldhost = "OLDHOSTNAME"
$newhost = "NEWHOSTNAME"
$oldDriveLetter = "C"
$newDriveletter = "E"
$path = "\\$newip\$newdriveletter$\Folder"
$files = get-childitem $path\* -include *.xml, *.config, -recurse
$files | %{
(gc $_) -replace $oldhost, $newhost -replace $oldip, $newip -replace "${olddriveletter}:\Folder", "${newDriveLetter}:\Folder" | set-content $_.fullname
}
В настоящее время он заменяет только значения в основной папке, но не какие-либо из подпапок.Любая идея, что мне не хватает?
Редактировать: В соответствии с предложением ниже, я удалил запятую после * .config, и это, кажется, проходит через подпапки.Но он по-прежнему не заменяет ни один экземпляр C: \ Folder на E: \ Folder