Syntexfehler bei Abfrage - Pfad der rars falsch
Hy ich habe in einem anderen Thread bereits ein ähnliches //bzw das selbe script erfragt/hilfebekommen.
Nun wollte ichdas ganze etwas Flxibler gestalten und die Parameter von hand eingeben lassen
Dies Funktioniert soweit auchganzgut.
Nur bekomme ich einen syntexfehler
Dessen ursache mir nicht ganz klar ist
Momentan tuht es :
Vorher
C:\xvid\Ordnerabc\Datein
C:\xvid\Ordnerbc\Datein
C:\xvid\Ordnerac\Datein
Nacher
C:\xvid\Ordnerabc\"leer"
C:\xvid\Ordnerbc\"leer"
C:\xvid\Ordnerac\"leer"
C:\xvid\keinName.rar
C:\xvid\KeinName.rar
C:\xvid\KeinName.rar
Soll aber:
Vorher
C:\xvid\Ordnerabc\Datein
C:\xvid\Ordnerbc\Datein
C:\xvid\Ordnerac\Datein
Nacher
C:\xvid\Ordnerabc\Ordnerabc.rar
C:\xvid\Ordnerbc\Ordnerbc.rar
C:\xvid\Ordnerac\Ordnerac.rar
Meine Batch sieht momentan so aus:
@echo ON
echo .....
echo .....
echo Bitte Pfad eingeben
echo Beispiel :"D:\xvid"
set /p Basis=Bitte Pfad Eingeben :
set "Ziel=%Basis%"
echo .....
echo .....
echo .....
echo a = 101mb
echo b = 251mb
echo c = 501mb
echo d = 1024mb(1gb)
echo e = 2048mb(2GB)
set /p wahl1= a bis e:
if %wahl1%==a set "%Grose%=103424"
if %wahl1%==b set "%Grose%=257024"
if %wahl1%==c set "%Grose%=513024"
if %wahl1%==d set "%Grose%=1048576"
if %wahl1%==e set "%Grose%=2097152"
echo .....
echo .....
echo .....
set "Prog=d:\rar.exe"
set /p wahl2=Files nach packen löschen 1=ja / 2=nein:
if %wahl2%==1 set "%par1%= -df"
if %wahl2%==2 set "%par1%= "
set "Prog=d:\rar.exe"
for /d %%i in ("%Basis%\*.*") do (
"%Prog%" a -r%par1% -ag-H-M-S -v%Grose%k -m0 "%Ziel%\%%~nxi\%%~nxi" "%%i\*.*"
)
PAUSE
den Syntexfehler bekomme ich hier
http://s7.directupload.net/images/110315/u57bsgoe.png
Hoffe ihr könnt mir helfen
Thx schon mal an alle
MFG
Nun wollte ichdas ganze etwas Flxibler gestalten und die Parameter von hand eingeben lassen
Dies Funktioniert soweit auchganzgut.
Nur bekomme ich einen syntexfehler
Dessen ursache mir nicht ganz klar ist
Momentan tuht es :
Vorher
C:\xvid\Ordnerabc\Datein
C:\xvid\Ordnerbc\Datein
C:\xvid\Ordnerac\Datein
Nacher
C:\xvid\Ordnerabc\"leer"
C:\xvid\Ordnerbc\"leer"
C:\xvid\Ordnerac\"leer"
C:\xvid\keinName.rar
C:\xvid\KeinName.rar
C:\xvid\KeinName.rar
Soll aber:
Vorher
C:\xvid\Ordnerabc\Datein
C:\xvid\Ordnerbc\Datein
C:\xvid\Ordnerac\Datein
Nacher
C:\xvid\Ordnerabc\Ordnerabc.rar
C:\xvid\Ordnerbc\Ordnerbc.rar
C:\xvid\Ordnerac\Ordnerac.rar
Meine Batch sieht momentan so aus:
@echo ON
echo .....
echo .....
echo Bitte Pfad eingeben
echo Beispiel :"D:\xvid"
set /p Basis=Bitte Pfad Eingeben :
set "Ziel=%Basis%"
echo .....
echo .....
echo .....
echo a = 101mb
echo b = 251mb
echo c = 501mb
echo d = 1024mb(1gb)
echo e = 2048mb(2GB)
set /p wahl1= a bis e:
if %wahl1%==a set "%Grose%=103424"
if %wahl1%==b set "%Grose%=257024"
if %wahl1%==c set "%Grose%=513024"
if %wahl1%==d set "%Grose%=1048576"
if %wahl1%==e set "%Grose%=2097152"
echo .....
echo .....
echo .....
set "Prog=d:\rar.exe"
set /p wahl2=Files nach packen löschen 1=ja / 2=nein:
if %wahl2%==1 set "%par1%= -df"
if %wahl2%==2 set "%par1%= "
set "Prog=d:\rar.exe"
for /d %%i in ("%Basis%\*.*") do (
"%Prog%" a -r%par1% -ag-H-M-S -v%Grose%k -m0 "%Ziel%\%%~nxi\%%~nxi" "%%i\*.*"
)
PAUSE
den Syntexfehler bekomme ich hier
http://s7.directupload.net/images/110315/u57bsgoe.png
Hoffe ihr könnt mir helfen
Thx schon mal an alle
MFG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 162690
Url: https://administrator.de/contentid/162690
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
1 Kommentar
Hallo,
Schau mal das hier an: . So bekommst du mehr Antworten und man kanns besser lesen...
Bei if-Abfragen macht man in Batchi IMMER (bei Stringvergleichen) ein Zeichen jeweils vor die zu vergleichenden Sachen
Also:
Wichtig ist nur, dass auf beiden Seiten des == etwas steht, auch wenn die Variable leer ist.
Das 2.:
Das setzt die Variable mit dem Namen der dem Inhalt von %par1% entspricht-in deinem Fall "" (nichts)-->Die % in set-Anweisungen fast nie benutzen
Beispiel:
Mathe172
PS.: Gib mal das in der Dos-Box ein:
Schau mal das hier an: . So bekommst du mehr Antworten und man kanns besser lesen...
Bei if-Abfragen macht man in Batchi IMMER (bei Stringvergleichen) ein Zeichen jeweils vor die zu vergleichenden Sachen
Also:
If "%String1%"=="%String2%" echo.OK
::Oder
If "%String1%"=="Text" echo.OK
::Oder
If Test%String1%==TestText echo.OK
Das 2.:
set "%par1%=Test"
Beispiel:
set "Var=Text1"
set "%Var%=Text2"
echo %Var%
::Die zweite Variable heisst Text1
echo %Text1%
Mathe172
PS.: Gib mal das in der Dos-Box ein:
(echo.oe:ö
echo.ae:ä
echo.ue:ü
echo.Und mehr)>>Desktop\Sonderzeichen.txt