2016-05-31 2 views
-2

Ich habe gerade ein einfaches Batch-Skript erstellt. Ich möchte uninstall.exe mit Schaltern wie "-q" "-splash Uninstall"Verwenden von Bindestrich und Schaltern im Batch-Skript

ausführen Hier ist der Code; @echo off echo This script will uninstall some features. pause SET path=C:\Program Files\Program\uninstall.exe -q -splash Uninstall START "" "%path%" pause

Wenn ich diesen Code ausführen gibt es einen Fehler:

Windows cannot find 'C:\Program Files\Program\uninstall.exe -q -splash Uninstall' 
Make sure you typed the name correctly, and then try again. 

Wenn ich Schalter entfernen, Deinstallationsvorgang normal gestartet.

Also wie kann ich diese swstiche in einer Batch-Datei verwenden?

Antwort

1

Nebenbei, verwenden Sie nicht path als eine willkürliche Wahl des Variablennamens. Es hat eine besondere Bedeutung in Windows (und auch von Unix-abgeleiteten Systemen).

Ihr Hauptproblem besteht darin, dass Sie die Schalter in der Zeichenfolge in Anführungszeichen einschließen, die dann als Ganzes als ausführbarer Dateiname behandelt wird. Setzen Sie Ihre Angebote nur um den Dateinamen ein, und lassen Sie die Schalter außerhalb: (. Der einzige Grund für die Anführungszeichen ist die Tatsache, dass der Pfadname enthält Leerzeichen)

SET command="C:\Program Files\Program\uninstall.exe" -q -splash Uninstall 
START "" %command% 

Auch Sie nicht wirklich brauchen eine Variable überhaupt zu verwenden, aber ich habe eine verwendet, seit du eine benutzt hast.

+0

Arbeitete, vielen Dank. – Erdogan

0

Ich bin mir nicht ganz sicher, ob für jedes Programm, auf das Sie stoßen, eine uninstall.exe-Datei im Verzeichnis C: \ Programme (place program name here) \ auf Sie wartet. Selbst wenn dies der Fall ist, müssen Sie es wahrscheinlich über die GUI steuern. Wenn ich jedoch einen anderen Stapelüberlauf-Thread here betrachte, möchte ich den Benutzern von Bali C. und PA Kredit geben. Um eine mögliche Lösung zum Deinstallieren von Dateien mit einer Batch-Datei zu finden, verwenden Sie den Registrierungsschlüssel, um eine Deinstallationsdatei für Windows-Programme zu finden. Ich werde wieder einfügen PA Code unten:.

@echo off 
for /f "tokens=*" %%a in ('reg query hklm\software\Microsoft\Windows\CurrentVersion\Uninstall\ ^| find /I "%*"') do (
    for /f "tokens=1,2,*" %%b in ('reg query "%%a" /v UninstallString ^| find /I "UninstallString"') do (
    if /i %%b==UninstallString (
     echo %%d 
    ) 
) 
) 

Dieser Code wird die Deinstallationsdatei für ein bestimmtes Programm aus der Registrierung finden, und dann wird es aus dem Befehl druckt notwendig, um die Deinstallation Datei auszuführen. Entfernen Sie das 'Echo', um nur diese Befehle auszuführen, wenn Sie sicher sind, dass sie korrekt sind. Dies erfordert jedoch wahrscheinlich die Deinstallation der GUI des Programms. Ich denke nicht, dass dies furchtbar ineffizient wäre. Gibt es einen anderen Grund, warum Sie neben der Effizienz eine Batch-Datei verwenden möchten?

Ich hoffe, das hilft!

+0

danke für die Antwort. Ich habe zu viel von deinem Kommentar gelernt. – Erdogan

+0

Ich bin glücklich, Ihnen in irgendeiner Weise zu helfen! – iRove