Pagina 1 van 1

Batch-scripting

Geplaatst: 11 jan 2005, 09:58
door meon
Ik heb hier een klein probleempje. Ik ben een .bat-scriptje aan het maken, maar bots hier op het probleem dat je niet zomaar aan string-bewerking kan doen.
Ik doe het volgende:

Code: Selecteer alles

set map="C:\Documents and settings\meon\Mijn Documenten\map\"
if exists %map%\submap %2\map\file.pid goto :error1 
Waarbij %2 een parameter is, in dit geval een getal

Ik wil dus kijken of het bestand file.pid bestaat in de map "C:\Documents and settings\meon\Mijn Documenten\map\submap 12\map\".
Het probleem lijken mij de spaties te zijn, maar met aanhalingstekens neemt hij die dan weer gewoon mee over...

Ik krijg deze fout:

Code: Selecteer alles

"C:\Documents and settings\meon\Mijn Documenten\map\"\submap niet verwacht op dit moment.
Iemand een idee?

Geplaatst: 11 jan 2005, 10:44
door khsw
Dit zou moeten werken:

Code: Selecteer alles

set map=C:\Documents and settings\meon\Mijn Documenten\map\
if exist "%map%submap %2\map\file.pid" goto error1

Geplaatst: 11 jan 2005, 10:59
door meon
Cool, thx!
Soms zijn de oplossingen simpeler dan verwacht, en daar denk je dan niet aan ;)

Geplaatst: 11 jan 2005, 12:29
door meon
Oké, volgend probleem:

Code: Selecteer alles

echo <config> >> config.xml
Zoiets kan dus niet. Hoe echo je "<" en ">" zonder dat je daardoor naar bestanden gaat schrijven? Als je "<config>" doet zitten de aanhalingstekens er bij ...

Geplaatst: 11 jan 2005, 13:30
door Belg
Die had ik je net gemaild geloof ik .....

Echo ^<dinges^>

Even nog een opmerking over dat SET commando:

set test=dit is een test
de variabele %test% heeft nu als inhoud "dit". Als je de volledige tekst wilt hebben kun je beter:
set "test=dit is een test" gebruiken

Geplaatst: 11 jan 2005, 13:34
door satori
Ik dacht eerst aan < en > maar ^ als escape char (zoals Belg zei) is idd wel de beste oplossing.

Geplaatst: 11 jan 2005, 13:58
door meon
Hehe, idd, ça marche!

TY!

Geplaatst: 11 jan 2005, 14:15
door khsw
Belg schreef: Even nog een opmerking over dat SET commando:

set test=dit is een test
de variabele %test% heeft nu als inhoud "dit". Als je de volledige tekst wilt hebben kun je beter:
set "test=dit is een test" gebruiken
In Windows 2000 is er blijkbaar geen verschil tussen beide commando's...