Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Powershell вызов из cmd (http://forum.oszone.net/showthread.php?t=305391)

c4uran 14-09-2015 11:59 2552942

[решено] Powershell вызов из cmd
 
Мне уже помогали на этом форуме вот такой (супер божественной) строкой:

Код:

for /f "delims=" %%i in ('
 powershell "($x=[System.Runtime.InteropServices.Marshal])::PtrToStringAuto($x::SecureStringToBSTR((Read-Host 'Entered symbols will be hide' -AsSecureString)))"
') do set password=%%i

Теперь же суть вопроса: как можно сделать любой другой вызов powershell из cmd и на выходе полученную переменную PS переведенную в переменную cmd

Kazun 14-09-2015 12:42 2552956

Какой сакральный смысл вызова powershell через cmd? Почему бы просто не запускать powershell без cmd.

Код:

powershell "команда"

c4uran 14-09-2015 14:31 2553006

полученную переменную PS переведенную в переменную cmd

Iska 14-09-2015 15:47 2553032

Цитата:

Цитата c4uran
Теперь же суть вопроса: как можно сделать любой другой вызов powershell из cmd »

Что значит «любой другой»? Чем не устраивает имеющийся?

c4uran 15-09-2015 09:35 2553306

допустим, мне нужно получить отчет по директориям используя PS:

Код:

Get-ChildItem | measure -Property Length | select -Property Count
используя cmd как получить из этого переменную cmd не используя вывод в файл

UPD:

Пардон решается так:

Код:

for /f "delims=" %%i in ('
powershell "(Get-ChildItem | measure -Property Length | select -Property Count)"
') do set count=%%i

но такой пример так не решается:

Код:

Get-WmiObject Win32_Product | Where-Object {$_.Name -match "Silverlight"} | select -Property version

Kazun 15-09-2015 10:08 2553317

Код:

for /f "delims=" %%i in ('
 powershell "Get-WmiObject Win32_Product | Where-Object {$_.Name -match """Silverlight"""} | Select -ExpandProperty Version"
') do echo %%i

или

Код:

for /f "delims=" %%i in ('
 powershell "Get-WmiObject Win32_Product | Where-Object {$_.Name -match 'Silverlight'} | Select -ExpandProperty Version"
') do echo %%i


Foreigner 15-09-2015 10:26 2553321

Код:

@echo off
setlocal

set "exec=powershell "gwmi win32_product ^| where {$_.name -match 'Silverlight'} ^| select -expand version""

for /f %%i in ('%exec%') do echo %%i


c4uran 15-09-2015 10:53 2553331

Все работает, всем спасибо, разобрался


Время: 14:15.

Время: 14:15.
© OSzone.net 2001-