Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 12.06.2012 um 18:50:35 Uhr
Verschoben von "Windows-weiss-nich-genau" nach "Batches from Hell"

Rar.exe wird nicht gefunden

Frage Entwicklung Batch & Shell

Mitglied: abbrechen

abbrechen (Level 1) - Jetzt verbinden

12.06.2012, aktualisiert 13.06.2012, 2689 Aufrufe, 8 Kommentare

Mein Programm liegt zusammen mit der Rar.exe in einem Verzeichnis, doch wenn ich über das Startmenü das Porgramm aufrufe, findet dieses die Rar.exe nicht.
Wenn ich jedoch den Ordner öffne und dort dann das Programm starte, wird die Rar.exe erkannt und es funktioniert alles einwandfrei.
Hier ist mal der Code:

01.
@echo off 
02.
title Safest 
03.
mode 70,10 
04.
 
05.
:menu 
06.
cls 
07.
color 07 
08.
mode 70,10 
09.
echo Anleitung [A] 
10.
echo Liste der Dateien [L] 
11.
echo Eine Datei verschlüsseln [V] 
12.
echo Eine Datei entschlüsseln [E] 
13.
 
14.
set /p abfrage=Was wollen Sie tun?:  
15.
if "%abfrage%" == "V" goto V 
16.
if "%abfrage%" == "v" goto V 
17.
if "%abfrage%" == "[V]" goto V 
18.
if "%abfrage%" == "[v]" goto V 
19.
 
20.
if "%abfrage%" == "E" goto E 
21.
if "%abfrage%" == "e" goto E 
22.
if "%abfrage%" == "[E]" goto E 
23.
if "%abfrage%" == "[e]" goto E 
24.
 
25.
if "%abfrage%" == "A" goto A 
26.
if "%abfrage%" == "a" goto A 
27.
if "%abfrage%" == "[A]" goto A 
28.
if "%abfrage%" == "[a]" goto A 
29.
 
30.
if "%abfrage%" == "L" goto L 
31.
if "%abfrage%" == "l" goto L 
32.
if "%abfrage%" == "[L]" goto L 
33.
if "%abfrage%" == "[l]" goto L 
34.
 
35.
if errorlevel 0 goto error 
36.
 
37.
:error 
38.
cls 
39.
color 0C 
40.
echo Der Befehl konnte nicht ausgeführt werden. Klicken Sie eine beliebige Taste, um zum Menue zu gelangen. 
41.
pause 
42.
goto menu 
43.
 
44.
:A 
45.
cls 
46.
color 07 
47.
mode 100,10 
48.
echo. 
49.
echo Sichern Sie vor dem Verschlüsseln der Datei diese, denn Safest fertigt keine Kopie an. 
50.
echo Zum Verschlüsseln: Geben Sie zum Verschlüsseln den Namen, mit Endung (z.B. .jpg), an und anschließend den Pfad, bis zum Ordner (ohne Datei). 
51.
echo Zum Entschlüsseln: Geben Sie den Namen der Datei ohne seine Endung ein, da diese vom Verschlüsseler vorbestimmt ist. Anschließend muss noch der Name der Datei, mit seiner alten Endung (z.B. .jpg) und der Zielort angegeben werden. 
52.
echo. 
53.
 
54.
set /p backtomenu=Wollen Sie zurück, zum Menü? [y / n]  
55.
if "%backtomenu%" == "yes" goto menu 
56.
if "%backtomenu%" == "Yes" goto menu 
57.
if "%backtomenu%" == "y" goto menu 
58.
 
59.
if "%backtomenu%" == "no" goto A 
60.
if "%backtomenu%" == "No" goto A 
61.
if "%backtomenu%" == "n" goto A 
62.
 
63.
if errorlevel 0 goto A 
64.
 
65.
:V 
66.
set /p originalname=Wie heißt die Datei? (+Endung):  
67.
set /p dateipfad=Geben Sie den Ordnerort an:  
68.
set /p dateiname=Wie soll die Datei heißen? (ohne Endung):  
69.
 
70.
ren %dateipfad%\%originalname% %dateiname%.dat 
71.
move /y %dateipfad%\%dateiname%.dat %userprofile%\AppData\Roaming\Microsoft\Windows\"Start menu"\programs\"abbrechen Entertainment"\Safest 
72.
rar a safe.rar %dateiname%.dat 
73.
del /f %dateiname%.dat 
74.
 
75.
goto packed 
76.
 
77.
:packed 
78.
cls 
79.
color 0A 
80.
echo Die Datei ist nun verschlüsselt. Klicken Sie eine beliebige Taste, um zum Menue zu gelangen. 
81.
pause 
82.
goto menu 
83.
 
84.
:E 
85.
set /p back=Welche Datei soll entschlüsselt werden? (ohne Endung):  
86.
set /p backname=Wie soll die Datei heißen? (+Endung):  
87.
set /p verzeichnis=Wohin soll die Datei entschlüsselt werden?:  
88.
 
89.
rar e safe.rar %back%.dat 
90.
rar d safe.rar %back%.dat 
91.
ren %back%.dat %backname% 
92.
move /y %backname% %verzeichnis% 
93.
 
94.
goto unpacked 
95.
 
96.
:unpacked 
97.
cls 
98.
color 0A 
99.
echo Die Datei ist nun entschlüsselt. Klicken Sie eine beliebige Taste, um zum Menue zu gelangen. 
100.
pause 
101.
goto menu 
102.
 
103.
:L 
104.
cls 
105.
color 07 
106.
mode 70,30 
107.
rar v safe.rar 
108.
set /p liste=Wollen Sie die Liste speichern? [y / n]  
109.
if "%liste%" == "yes" goto safe 
110.
if "%liste%" == "Yes" goto safe 
111.
if "%liste%" == "y" goto safe 
112.
 
113.
if "%liste%" == "no" goto nosafe 
114.
if "%liste%" == "No" goto nosafe 
115.
if "%liste%" == "n" goto nosafe 
116.
 
117.
if errorlevel 0 goto L 
118.
 
119.
:safe 
120.
set /p listeort=Wo soll die Liste gespeichert werden?:  
121.
rar v safe.rar > %listeort%\Datenliste.txt 
122.
 
123.
:nosafe 
124.
set /p backtomenu=Wollen Sie zurück, zum Menü? [y / n]  
125.
if "%backtomenu%" == "yes" goto menu 
126.
if "%backtomenu%" == "Yes" goto menu 
127.
if "%backtomenu%" == "y" goto menu 
128.
 
129.
if "%backtomenu%" == "no" goto L 
130.
if "%backtomenu%" == "No" goto L 
131.
if "%backtomenu%" == "n" goto L 
132.
 
133.
if errorlevel 0 goto nosafe
Mitglied: SlainteMhath
12.06.2012 um 15:04 Uhr
Moin,

was für ein Arbeitsverzeichnis hast Du in dem Link im Startmenü angegeben?

lg,
Slainte
Bitte warten ..
Mitglied: abbrechen
12.06.2012 um 15:15 Uhr
Gar keines, glaube ich.
Über das Startmenü starte ich die Datei direkt, doch scheint sie dann nicht zu wissen, dass sie sich in dem Verzeichnis (%userprofile%\AppData\Roaming\Microsoft\Windows\"Start menu"\programs\"abbrechen Entertainment"\Safest) befindet.
Ich habe es auch schon mit einer start.bat Datei probiert, die das Programm mit einer Verlinkung, zum Verzeichnis, starten soll, doch selbst dann wird die Rar.exe nicht gefunden.
Ich hoffe, dass ich deine Frage beantworten konnte. :S
Bitte warten ..
Mitglied: SlainteMhath
12.06.2012 um 15:19 Uhr
Gar keines, glaube ich.
Aha ^^

Du kannst jetzt
1) Das Arbeitsverzeichniss angeben in dem dein "Programm" und die rar.exe liegt ("Ausführen in..")
2) die RAR.EXE in ein Verzeichniss kopieren das sich im PATH befindet (%windir%\system32 z.b.)
3) Im "Pogramm" denn vollständigen Pfad zur RAR.EXE angeben
4) Bei Programmstart mittels "cd" in das Verzeichnis wechseln in dem RAR.EXE liegt.

lg,
Slainte
Bitte warten ..
Mitglied: Penny.Cilin
12.06.2012 um 15:26 Uhr
Und die ganzern IF Abfragen kann man auch optimieren. Zumindest
 IF /I
kann man einsetzen, dann ist es egal, ob GROSS oder klein Schreibung.
ich bion jetzt nicht so der Bätschler, aber möglicherweise geht es sogar mit der FOR Schleife, dann wird es noch kürzer und evtl. auch übersichtlicher.
Bitte warten ..
Mitglied: bastla
12.06.2012 um 17:17 Uhr
... und einen hab ich noch:

5) Den Pfad der aufgerufenen Batchdatei dazu verwenden, die "rar.exe" zu finden:
"%~dp0rar.exe"
Hinsichtlich der Abfragen: Etwas eleganter wäre vielleicht beispielsweise
if /i #%liste:~,1%==#y goto safe
Vor dem "set /p" würde sich auch noch ein Löschen des Variableninhalts mit "set liste=" anbieten.

BTW: So richtig selbsterklärend ist der Variablenname %liste% für eine Eingabe aber nicht wirklich ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
12.06.2012, aktualisiert um 18:44 Uhr
Zitat von bastla:
... und einen hab ich noch:
...ich auch...

BTW: So richtig selbsterklärend ist [...] aber nicht wirklich ...
BTWii: die Konstrukte der Art if errorlevel 0 goto A sehen ja wirklich richtig professionell aus..... aber...

....den eigentlichen Entscheidungsspielraum hat der CMD-Interpreter nicht mehr, sollte er an dieser Zeile ankommen.

Oder mal anders gefragt:
Wenn das Errorlevel nach dem Set /p-Befehl nicht größer gleich 0 sein sollte - was könnte es dann sein?
Grün? Ein Eukalyptusbaum? Eine Insel?

Demo am CMD-Prompt
d:\temp>dadelaaat! 
Der Befehl "dadelaaat!" ist entweder falsch geschrieben oder 
konnte nicht gefunden werden. 
 
d:\temp>if errorlevel 0 @echo %errorlevel% 
9009
Und selbst wenn im Code gemeint gewesen sein sollte, "wenn der Benutzer nicht Ctrl-C gedrückt hat,, dann gehe zu.."
-> dann würde das Programmlogik ja dennnoch etwas eigenwillig verlaufen.
Vielleicht einfach mal an irgendeiner Stelle, an der etwas abgefragt wird, mal ^C oder ESC oder ENTER drücken und schauen, wo es weitergeht... *gg

Grüße
Biber
Bitte warten ..
Mitglied: abbrechen
12.06.2012 um 21:51 Uhr
Ersteinmal vielen Dank, für die ganzen Verbesserungen. =)
Doch bevor ich die "Feinheiten" angehe, verstehe ich den wichtigsten Punkt nicht und zwar den von SlainteMhath.
Wo genau soll ich angeben, dass sich das Programm und die Rar.exe im Startmenü aufhalten?
Bei der install.bat erkennt die Batch das Arbeitsverzeichnis, wenn ich dort %userprofile% benutze, wenn ich zusätzlich C:\ angebe, dann wird es zwei Mal ausgegeben und der Befehl misslingt.
Und warum soll ich die Rar.exe dann überhaupt noch in dasselbe Verzeichnis legen, wenn du mir im 2. Punkt dazu rätst, die Rar.exe in den Programmordner zu legen?
Bitte warten ..
Mitglied: bastla
12.06.2012 um 21:58 Uhr
Hallo abbrechen!
Und warum soll ich die Rar.exe dann überhaupt noch in dasselbe Verzeichnis legen, wenn du mir im 2. Punkt dazu rätst, die Rar.exe in den Programmordner zu legen?
Weil es sich bei den Vorschlägen (inkl "meiner" Nummer 5) um Alternativen handelt?

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...