Ich habe gesucht, aber keine Antwort gefunden.
Die Aufgabe ist Register 1 DLL Powershell PS1, gefolgt von anderen Zeilen von Skripten. Ich möchte nicht durch den Dialog unterbrochen werden, also fügte ich den Parameter hinzu. Aber jetzt wird die Ergebnisinformation ignoriert, egal ob erfolgreich oder fehlgeschlagen. Ich möchte das Ergebnis in der Konsole angezeigt werden. Aber wie?Powershell zum anzeigen Regsvr32 Ergebnis in der Konsole anstelle von Dialog
0
A
Antwort
1
Starten regsvr32.exe /s
mit Start-Process -PassThru
und überprüfen Sie die ExitCode
Eigenschaft:
$regsvrp = Start-Process regsvr32.exe -ArgumentList "/s C:\path\to\your.dll" -PassThru
$regsvrp.WaitForExit(5000) # Wait (up to) 5 seconds
if($regsvrp.ExitCode -ne 0)
{
Write-Warning "regsvr32 exited with error $($regsvrp.ExitCode)"
}
1
hier ein vollständigeres volle Powershell-Cmdlets mit Pipeline-Unterstützung ist.
function Register-Dll
{
<#
.SYNOPSIS
A function that uses the utility regsvr32.exe utility to register a file
.PARAMETER Path
The file path
.PARAMETER Unregister
when specified, unregisters instead of registers
#>
[CmdletBinding()]
param (
[ValidateScript({ Test-Path -Path $_ -PathType 'Leaf' })]
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipeLineByPropertyName=$true)]
[Alias("FullName")]
[string[]]$Path,
[Alias("u")]
[switch]$Unregister
)
begin {
if ($Unregister)
{
$regflag = "-u "
}
else
{
$regflag = ""
}
[int]$NumFailed=0
$RegExitCodes = @{
0="SUCCESS";
1="FAIL_ARGS - Invalid Argument";
2="FAIL_OLE - OleInitialize Failed";
3="FAIL_LOAD - LoadLibrary Failed";
4="FAIL_ENTRY - GetProcAddress failed";
5="FAIL_REG - DllRegisterServer or DllUnregisterServer failed.";
}
}
process {
foreach ($p in $path)
{
try
{
$regsvrp = Start-Process regsvr32.exe -ArgumentList "/s $regflag <code>$p</code>" -Wait -NoNewWindow -PassThru
if($regsvrp.ExitCode -ne 0)
{
$NumFailed++
Write-Error "regsvr32 $regflag for $p exited with error $($regsvrp.ExitCode) - $($RegExitCodes[$regsvrp.ExitCode])"
}
} catch {
$NumFailed++
Write-Error $_.Exception.Message
}
}
}
end {
if ($NumFailed -gt 0)
{
if ($Unregister)
{
$mode = "unregister"
}
else
{
$mode = "register"
}
Write-Error "Failed to $mode $NumFailed dll's, see previous errors for detail"
}
}
}
Verbrauch:
function Register-MyAppDll
{
param(
[Parameter(Mandatory=$true,ParameterSetName="Both")]
[switch]$ReRegister,
[Parameter(Mandatory=$true,ParameterSetName="UnregisterOnly")]
[Alias("u")]
[switch]$UnRegister,
[Parameter(Mandatory=$true,ParameterSetName="RegisterOnly")]
[Alias("r")]
[switch]$Register
)
$RegOptions = @()
if ($UnRegister -or $ReRegister) { $RegOptions += @{Unregister=$true} }
if ($Register -or $ReRegister) { $RegOptions += @{} }
$dlltoregister = Get-ChildItem "C:\MyApp\bin" -Filter *.dll | where {$_ -notmatch '^interop'}
foreach ($RegOpt in $RegOptions)
{
$dlltoregister | Register-Dll @RegOpt
}
}
Register-MyAppDll -UnRegister
Register-MyAppDll -Register
Register-MyAppDll -ReRegister
Enjoy :)
Verwandte Themen
- 1. Öffnen der Eingabeaufforderung anstelle der Konsole. Eclipse
- 2. Dialog mit PendingIntent anzeigen
- 3. Android-Studio zum Anzeigen von XML-Code anstelle von Design
- 4. Schieberegler zum Anzeigen von Monaten anstelle von Zahlen
- 5. Anzeigen der Datenstruktur anstelle der Daten
- 6. Ergebnis der AJAX-Anfrage anzeigen
- 7. JSON-Objekt von Konsole anzeigen
- 8. Wie Verwenden von Instrumenten und Anzeigen der Konsole in Befehlszeilenanwendungen
- 9. Anzeigen von hebräischem Text in einer Konsole
- 10. Welche Vorteile bietet Powershell anstelle von VBScript?
- 11. Keine Benutzereingabe in der automatischen Vervollständigung der Konsole anzeigen
- 12. Warum Autocomplete von jqueryUI Ergebnis nicht anzeigen?
- 13. Ausschließen Liste der Elemente von Get-ChildItem Ergebnis in Powershell?
- 14. Opendialog zum Anzeigen von Wechseldatenträgern in C#
- 15. Anzeigen von Unicode-Zeichen in der Xcode-Konsole?
- 16. Ergebnis mit Rahmen anzeigen
- 17. Wie Umleitung der Nslog-Ausgabe in Datei anstelle der Konsole
- 18. System.Windows.Forms.WebBrowser.Print() Anzeigen drucken Dialog
- 19. Wie binäre Stdout einer Konsole exe von Powershell zu erfassen?
- 20. Echo Newline zu Powershell-Konsole
- 21. wie man dialog von meiner anwendung für ergebnis anzeigen (wie google spiel spielen)
- 22. auf Konsole Anzeigen
- 23. Registrierung DLL mit Regsvr32
- 24. Powershell: Wie übergebe ich Variablen zum Umschalten von Parametern beim Aufruf von Powershell in der Befehlszeile?
- 25. Die Ausgabe einer Konsolenanwendung in Visual Studio anstelle der Konsole
- 26. PowerShell zum Umbenennen der Excel-Tabelle
- 27. Schaltfläche zum Schließen in der rechten Seite von jQuery Dialog
- 28. PowerShell zum Festlegen von GPO
- 29. PowerShell: Wie kann ich erzwingen, um ein Ergebnis als ein Array anstelle von Objekt
- 30. Applet zum Anzeigen von Word-Dokumenten
Danke, habe ich versucht, aber der Code Fehler scheint anders, in Dialog ist es 0x80070005, in der Konsole, ist es 5. Warum? –
'0x80070005' und' 5' * sind * derselbe Fehlercode ('ACCESS_DENIED') –