Я хотел бы написать сценарий powershell, который получает следующие параметры в качестве входных данных:
папка для копирования, расширения позволяют, папка для копирования и логическое значение, указывающее, должно ли изменение перезапустить IIS, имя пользователя и пароль.
На какие командлеты я должен смотреть, учитывая, что я копирую на удаленный сервер?
Как мне прочитать параметры в переменные?
Как перезапустить IIS?
Учитывая, что я могу захотеть скопировать несколько папок, как мне написать скрипт powershell, который вызывает скрипт powershell?
powershell
the_drow
источник
источник
Ответы:
Get-ChildItem
позволяет перечислять файлы и каталоги, в том числе рекурсивно с фильтрами имен файлов.Copy-Item
позволяет скопировать файл.Существует много совпадений с точки зрения выбора файлов, часто само
Copy-Item
по себе достаточно в зависимости от деталей того, что вам нужно (например, хотите ли вы сохранить структуру папок?)Чтобы скопировать все
*.foo
и*.bar
из StartFolder в DestFolder:Если вам нужно сохранить структуру папок, все становится сложнее, потому что вам нужно создать имя папки назначения, что-то вроде:
Но
robocopy
скорее всего будет прощеВ конце концов, способ выбора будет зависеть от деталей того, что нужно.
(Выше я избегал псевдонимов (например,
Copy-Item
вместоcopy
) и явно использовал имена параметров, даже если они позиционные.)источник
Copy-Item -path "C:\Users\username\Pictures\" -include "*.JPG", "*.PNG" -Destination "D:\"
с и без - возместить - ничего не происходитЯ не могу обратиться к части IIS, но копирование файла при сохранении структуры каталогов может быть намного проще, чем показано в других ответах:
-Container
Аргумент магия часть , которая будет копировать структуру в пункте назначения , как в источнике.источник
-Include
... хотя я могу заставить это копировать все без-Include
Единственное решение, которое сработало для меня это
Другие решения, которые используют
-Include
параметр, не работали.источник
Как некоторые люди упоминали здесь -Include не работает.
Чтобы он работал с вложенными папками, я использовал двухэтапный подход: «фильтр» + удаление пустых папок
источник
Если вы используете IIS7, вы можете использовать собственный компонент для репликации содержимого между серверами IIS: http://blog.theplanet.com/2010/05/18/mirroring-server-content-and-configuration-in-iis7/
источник