Я пишу сценарий PowerShell для создания нескольких каталогов, если они не существуют.
Файловая система выглядит примерно так
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
- Каждая папка проекта имеет несколько ревизий.
- Каждая ревизионная папка нуждается в папке отчетов.
- Некоторые из папок «редакции» уже содержат папку «Отчеты»; однако большинство этого не делают.
Мне нужно написать скрипт, который запускается ежедневно для создания этих папок для каждого каталога.
Я могу написать скрипт для создания папки, но создание нескольких папок проблематично.
Ответы:
Попробуйте
-Force
параметр:Вы можете использовать,
Test-Path -PathType Container
чтобы проверить в первую очередь.См. Справочную статью о новом элементе MSDN для получения более подробной информации.
источник
Test-Path
проверяет, существует ли путь Когда этого не произойдет, он создаст новый каталог.источник
test-path
).Следующий фрагмент кода поможет вам создать полный путь.
Вышеуказанная функция разделит путь, который вы передали функции, и проверит каждую папку, существует она или нет. Если он не существует, он создаст соответствующую папку, пока не будет создана целевая / конечная папка.
Чтобы вызвать функцию, используйте следующую инструкцию:
источник
У меня была точно такая же проблема. Вы можете использовать что-то вроде этого:
источник
Когда вы указываете
-Force
флаг, PowerShell не будет жаловаться, если папка уже существует.Один лайнер:
Кстати, для планирования задачи, пожалуйста, проверьте эту ссылку: Планирование фоновых заданий .
источник
Использование:
Первая строка создает переменную с именем
$path
и присваивает ей строковое значение «C: \ temp \»Вторая строка - это
If
оператор, который использует командлет Test-Path , чтобы проверить$path
, не существует ли переменная . Не существует квалифицируется с использованием!
символа.Третья строка: если путь, сохраненный в приведенной выше строке, не найден, будет выполнен код между фигурными скобками.
md
это короткая версия ввода:New-Item -ItemType Directory -Path $path
Примечание: я не проверял использование
-Force
параметра с нижеуказанным, чтобы видеть, есть ли нежелательное поведение, если путь уже существует.источник
md "C:\first\second\third
создающих их все.Существует три способа создания каталога с помощью PowerShell:
источник
Исходя из вашей ситуации, создается впечатление, что вам нужно создавать папку «Revision #» один раз в день с папкой «Отчеты». Если это так, вам просто нужно знать номер следующей ревизии. Напишите функцию, которая получает следующий номер редакции, Get-NextRevisionNumber. Или вы можете сделать что-то вроде этого:
Установка PowerShell 3.0 .
источник
Я хотел иметь возможность легко позволить пользователям создавать профиль по умолчанию для PowerShell, чтобы переопределять некоторые параметры, и в итоге получился следующий однострочный (несколько операторов да, но их можно вставить в PowerShell и выполнить сразу, что было главной целью). ):
Для удобства чтения, вот как я бы сделал это в файле .ps1:
источник
Вот простой, который работал для меня. Он проверяет, существует ли путь, и если его нет, он создаст не только корневой путь, но и все подкаталоги:
источник