Несколько каталогов: эквивалент Powershell "mkdir dir {1..9}"?

Каков синтаксис создания нескольких каталогов с помощью PowerShells md (или mkdir, New-Item …), эквивалентный команде nix mkdir ch{1..9} т.е.

 ~/parent_dir/ ch1/ ch2/ ch3/ ch4/ ch5/ ch6/ ch7/ ch8/ ch9/ 

Я просмотрел справочные страницы и получал помощь для примеров, но я не знаю, как синтаксис PowerShell делает такую ​​простую вещь. Спасибо.

Что такое синтаксис для создания нескольких каталогов с помощью PowerShell

Используйте следующую команду:

 0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) } 

Как это работает:

  • 0..9 оператор диапазона .. порождает последовательность чисел 0, 1, … 9
  • Цифры конвейерные | Следующей команде
  • foreach (через каждое число по очереди)
  • { ... } – блок сценария
  • New-Item -ItemType directory -Name $("ch" + $_) создает каталоги
  • $_ – это автоматическая переменная, которая представляет текущий объект в конвейере (число)

Пример:

 > 0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) } Directory: F:\test Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 25/09/2016 14:57 ch0 d----- 25/09/2016 14:57 ch1 d----- 25/09/2016 14:57 ch2 d----- 25/09/2016 14:57 ch3 d----- 25/09/2016 14:57 ch4 d----- 25/09/2016 14:57 ch5 d----- 25/09/2016 14:57 ch6 d----- 25/09/2016 14:57 ch7 d----- 25/09/2016 14:57 ch8 d----- 25/09/2016 14:57 ch9 

Вам не нужно вызывать mkdir несколько раз, потому что New-Item может принимать массив путей. Например:

 mkdir $(1..9 | %{"ch$_"}) 

@DavidPostill объяснил большую часть концепций в своем ответе . Это также использует использование интерполяции строк вместо выполнения явной конкатенации. Кроме того, вместо « ForEach-Object используется стенограмма % , но имеет то же значение.

К сожалению, нет простого способа интерполяции строки в массив строк, как в bash.

Я бы использовал для версии цикла, поскольку ее легко запомнить и может применяться во многих ситуациях. Даже он может использоваться для нескольких команд.

Для эквивалента этой команды bash:

Для i в {1..9}; делать
Mkdir ch $ i
сделанный

… в PowerShell:

 for($i=1; $i -le 10; $i++) {md ch$i} 
  • Использование учетных данных PowerShell без запроса пароля
  • Неверный размер шрифта Powershell на Windows 8.1
  • Удалите файлы и складки на Azure перед новым развертыванием из VSTS
  • .NET Framework 4.5.2 в Windows 7 w SP1, не отображающийся в списке функций Windows
  • Проверка молчаливого обновления Java
  • Как запустить скрипт как администратор?
  • Как установить шрифт Powershell по умолчанию для Consolas?
  • Как я могу использовать PowerShell с командной строкой Visual Studio?
  • Получить значение удаленного реестра
  • Поиск текста на веб-страницах с указанием списка URL-адресов
  • Невозможно изменить шрифт по умолчанию для PowerShell для Lucida Console
  • Давайте будем гением компьютера.