Лучший отвечающий
Powershell: Отключить вывод информации на экран командлетом New-Item

Вопрос
-
Командлет New-Item после своего выполнения выводит некую информацию о созданном объекте. Хотелось бы, чтобы этот командлет вообще ничего не выводил на экран
Пока нашёл один смешной и тупой способ: $c = New-Item $path -ItemType $Type -Force. Тогда на экране ничего не отображается. Но создавать лишнюю переменную - это не есть хорошо. Должен быть какой-то другой способ. Искал среди параметров камандлета тот, который бы отключил вывод на экран, но нефига не нашёл. =( Так что не знаю...
22 января 2013 г. 9:52
Ответы
-
New-Item $path -ItemType $Type -Force | Out-Null
- Помечено в качестве ответа Lich130387 22 января 2013 г. 11:06
22 января 2013 г. 10:04Отвечающий -
[void](New-Item $path -ItemType $Type -Force)
- Помечено в качестве ответа KazunEditor 22 января 2013 г. 11:14
22 января 2013 г. 10:16Модератор -
Кстати, да, проверил в PS 2.0. он там есть. но что насчёт первого вопроса: [void](New-Item $path -ItemType $Type -Force) даст мне то же самое?
По времени быстрее [void], > $null ,но возможно затрудняет чтение,а где-то упрощает.Так в основном тоже самое.- Помечено в качестве ответа Lich130387 23 января 2013 г. 2:20
22 января 2013 г. 11:12Отвечающий
Все ответы
-
New-Item $path -ItemType $Type -Force | Out-Null
- Помечено в качестве ответа Lich130387 22 января 2013 г. 11:06
22 января 2013 г. 10:04Отвечающий -
[void](New-Item $path -ItemType $Type -Force)
- Помечено в качестве ответа KazunEditor 22 января 2013 г. 11:14
22 января 2013 г. 10:16Модератор -
Оба варианты равнозначны?
(кстати, примерно так и думал, что надо выводить null или присваивать выводу null, но не знал, как это можно сделать в пауэршелле)
Ещё: А Out-Null - это командлет PS 3? Просто пока я ориентируюсь на PS 2.0.
- Изменено Lich130387 22 января 2013 г. 11:02
22 января 2013 г. 10:59 -
Оба варианты равнозначны?
(кстати, примерно так и думал, что надо выводить null или присваивать выводу null, но не знал, как это можно сделать в пауэршелле)
Ещё: А Out-Null - это командлет PS 3? Просто пока я ориентируюсь на PS 2.0.
Нет,начиная с версии 1.22 января 2013 г. 11:05Отвечающий -
Кстати, да, проверил в PS 2.0. он там есть. но что насчёт первого вопроса: [void](New-Item $path -ItemType $Type -Force) даст мне то же самое?22 января 2013 г. 11:07
-
Кстати, да, проверил в PS 2.0. он там есть. но что насчёт первого вопроса: [void](New-Item $path -ItemType $Type -Force) даст мне то же самое?
По времени быстрее [void], > $null ,но возможно затрудняет чтение,а где-то упрощает.Так в основном тоже самое.- Помечено в качестве ответа Lich130387 23 января 2013 г. 2:20
22 января 2013 г. 11:12Отвечающий -
Вопрос по пустому выводу:
add-type -assembly system.windows.forms [System.Windows.Forms.MessageBox]::Show((ipconfig | Select-String ipv4)-join"`n", "My IP")
Вместе с месэджбоксом появляется окно PoSh. Как убрать окно, оставив только msgbox?
22 января 2013 г. 11:47 -
Вопрос по пустому выводу:
add-type -assembly system.windows.forms [System.Windows.Forms.MessageBox]::Show((ipconfig | Select-String ipv4)-join"`n", "My IP")
Вместе с месэджбоксом появляется окно PoSh. Как убрать окно, оставив только msgbox?
Для начала создать vbs скрипт:
scriptName = "powershell -noprofile -nologo C:\myscript.ps1" set shell = wscript.createobject("wscript.shell") shell.run scriptName,0,false
И в C:\myscript.ps1:
add-type -assembly system.windows.forms [System.Windows.Forms.MessageBox]::Show((ipconfig | Select-String ipv4)-join"`n", "My IP")
Запускать соотвественно vbs.- Изменено KazunEditor 22 января 2013 г. 12:04
22 января 2013 г. 12:04Отвечающий -
Недавно заинтересовался PoSh. vbs - даже не знаю, как с ним работать.
А чисто PoSh' ем нельзя это сделать?
22 января 2013 г. 12:07 -
powershell -windowstyle hidden -command "&{add-type -assembly system.windows.forms;[System.Windows.Forms.MessageBox]::Show((ipconfig | Select-String ipv4)-join'`n', 'My IP')}"
22 января 2013 г. 12:44Отвечающий -
`n должно быть в двойных кавычках, иначе не будет рассматриваться как escape последовательность для перевода строки.23 января 2013 г. 5:08
-
`n должно быть в двойных кавычках, иначе не будет рассматриваться как escape последовательность для перевода строки.
Верное замечание,если запускать из cmd,Выполнить и т.д,но не из PowerShell,там парсинг работает корректно.
Версия с двойными кавычками:
powershell -windowstyle hidden -command "&{add-type -assembly system.windows.forms;[System.Windows.Forms.MessageBox]::Show((ipconfig | Select-String ipv4)-join """`n""", 'My IP')}"
- Предложено в качестве ответа ILYA [ sie ] SazonovModerator 25 января 2013 г. 10:41
23 января 2013 г. 5:30Отвечающий -
А если в коде более одной строки, надо перед каждой указывать или один раз для всего кода?25 января 2013 г. 6:50
-
А если в коде более одной строки, надо перед каждой указывать или один раз для всего кода?
Использовать вместо -command ,-file C:\Myscript.ps125 января 2013 г. 7:12Отвечающий -
Т.е. сценарий запускается из командной строки (cmd)?25 января 2013 г. 11:55