Önce biraz arka plan.PowerShell'de EXE çıktısı yakala
GPG (gnupg.org) kullanarak bir Powershell komut dosyasıyla dosyaları şifreleme ile görevlendirildim. Ben arıyorum belirli exe sadece gpg.exe. Bir komutu ne zaman çalıştırdığımda çıktıyı yakalamak istiyorum. aşağıdaki gibi
Mesela ben powershell Bir açık anahtar:
& $gpgLocation --import "key.txt"
$ gpgLocation basitçe gpg.exe dosya konumu (varsayılan "olma C: \ Program Files \ GNU \ GNUPG \ gpg
& $gpgLocation --import "key.txt" | out-file gpgout.txt
ı get uygun adında bir 1kb dosyası, ama TAMAMEN boştur Ben ayaktan için çeşitli bayrakları denedim: .exe"
Buradaki tüm mesele bunu deneyin eğer. sadece görmek için dosya eğer bir tuhaflık yapıyor olsaydım.
param
(
[string] $processname,
[string] $arguments
)
$processStartInfo = New-Object System.Diagnostics.ProcessStartInfo;
$processStartInfo.FileName = $processname;
$processStartInfo.WorkingDirectory = (Get-Location).Path;
if($arguments) { $processStartInfo.Arguments = $arguments }
$processStartInfo.UseShellExecute = $false;
$processStartInfo.RedirectStandardOutput = $true;
$process = [System.Diagnostics.Process]::Start($processStartInfo);
$process.WaitForExit();
$process.StandardOutput.ReadToEnd();
Herhangi fikirler:
Ben de bu koda komutu gönderme (ve her zamanki dışı dosyası vb ile çıkış yakalayan) denedim? Çaresizim!
+1 ya (ancak standart çıkışa) –