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-Key: 162690

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

Printed on: April 19, 2024 at 08:04 o'clock

Member: mathe172
mathe172 Mar 15, 2011 at 16:12:51 (UTC)
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