New-Item
- это командлет, определенный в сборке, который создает новые объекты - как файлы, так и каталоги.mkdir
- это функция, которая вызывает New-Item
для создания каталогов.Он предназначен для удобства пользователей оболочки, знакомых с Windows CMD или командой оболочки unix mkdir
Чтобы увидеть определение mkdir
, используйте Get-Content Function:\mkdir
.Вы можете видеть, что он вызывает New-Item
под прикрытием после некоторого управления параметрами и конвейерами.Использование PS 5.0:
$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand('New-Item', [System.Management.Automation.CommandTypes]::Cmdlet)
$scriptCmd = {& $wrappedCmd -Type Directory @PSBoundParameters }
Обе из следующих команд создадут новый каталог с именем foo
в корне C:\
.Вторая форма знакома людям, приходящим из других оболочек (и короче типу).Первая форма - идиоматическая PowerShell.
PS> New-Item -Path C:\foo -Type Directory
PS> mkdir C:\foo
Поскольку mkdir
жестко кодирует параметр -Type Directory
, его можно использовать только для создания каталогов.Эквивалентной mkfile
встроенной функции не существует.Для создания файлов используйте New-Item -Type File
или другой командлет, например Out-File
.