loip104
Goto Top

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

Content-ID: 162690

Url: https://administrator.de/contentid/162690

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

mathe172
mathe172 15.03.2011 um 17:12:51 Uhr
Goto Top
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:
If "%String1%"=="%String2%" echo.OK  
::Oder
If "%String1%"=="Text" echo.OK  
::Oder
If Test%String1%==TestText echo.OK
Wichtig ist nur, dass auf beiden Seiten des == etwas steht, auch wenn die Variable leer ist.

Das 2.:
set "%par1%=Test"  
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:
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