Перенаправьте продукцию Powershell в .ps1

Я использую powershell, чтобы призвать sql хранимую процедуру, теперь я хочу перенаправить полный набор продукции в .ps1 файл, потому что линия продукции выполнима в powershell.

I'm trying to use >output.ps1, it works, but I'm checking the output file, it contains a lot of '...' to replace real output.

Как экспортировать полную продукцию? также полоса заголовок прочь?

Спасибо.

0
nl ja de
Можно ли разделить продукцию?
добавлено автор Arpit, источник
Так, я вижу, что ... приложен в продукции только вначале... то, что так? или это вновь появляется?
добавлено автор Arpit, источник
Here' s просто краткий образец моей продукции... $application = Новый Объект-ComObject Visio. Прикладной $documents = $application. $document документов = $documents. Добавьте $pages ("AMSGantt.vst") = $application. ActiveDocument. $page страниц = $pages. $shape500 пункта (1) = $page. DrawLine (2 7.9 11 7.9) $shape500. TextStyle = $shape500 "Названия". LineStyle = $shape500 "Названия". Текст = "Assignation de Barriè res - понедельник, 17 декабря 2012"
добавлено автор Apriljuly, источник
Это на самом деле использует powershell, чтобы открыть Visio и начать тянуть форму на предопределенном шаблоне. Таким образом, то, что я хочу, является на самом деле магазином, который они производят в .ps1, так, чтобы я мог призвать ps1 файл от powershell, чтобы выполнить, они производят.
добавлено автор Apriljuly, источник

1 ответы

Это зависит, как вы призываете хранимую процедуру. Если вы призываете его в PowerShell, необходимо быть в состоянии собрать продукцию, таким образом, я предполагаю, что вы начинаете его как отдельную задачу его собственное окно. Без вашего фактического примера вот способ собрать продукцию из команды tasklist.exe. Можно счесть его применимым.

cls
$exe = 'c:\Windows\System32\tasklist.exe'
$processArgs = '/NH'
try {
    Write-Host ("Launching '$exe $processArgs'")
    $info = New-Object System.Diagnostics.ProcessStartInfo
    $info.UseShellExecute = $false 
    $info.RedirectStandardError = $true 
    $info.RedirectStandardOutput = $true 
    $info.RedirectStandardInput = $true 
    $info.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden
    $info.CreateNoWindow = $true
    $info.ErrorDialog = $false
    $info.WorkingDirectory = $workingDir
    $info.Filename = $exe
    $info.Arguments = $processArgs

    $process = [System.Diagnostics.Process]::Start($info)
    Write-Host ("Launched $($process.Id) at $(Get-Date)")
    <# 
    $process.StandardOutput.ReadToEnd() is a synchronous read. You cannot sync read both output and error streams. 
    $process.BeginOutputReadLine() is an async read. You can do as many of these as you'd like. 
    Either way, you must finish reading before calling $process.WaitForExit()
    http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx
    #>

    $output = $process.StandardOutput.ReadToEnd()

    $process.WaitForExit() | Out-Null 

    Write-Host ("Exited at $(Get-Date)`n$output")

} catch {
    Write-Host ("Failed to launch '$exe $processArgs'")
    Write-Host ("Failure due to $_")
}
$output
0
добавлено
Самый безопасный способ перенаправить потоки вывода и потоки сообщений об ошибках состоит в том, чтобы использовать сценарий от Как захватить продукцию процесса асинхронно в powershell?
добавлено автор Michael Freidgeim, источник
PowerShellRus - о Powershell (и не только) на русском
PowerShellRus - о Powershell (и не только) на русском
418 участник(ов)

О Powershell на русском

PowerShell Pro
PowerShell Pro
75 участник(ов)

Чат, посвящённый языку PowerShell Правила чата: нет оффтопу, спаму, оскорблениям. Будьте вежливы к коллегам. Приятного общения! Книги можно найти по тегу #books