Probleem met spatie in batch file

  • Onderwerp starter Onderwerp starter Gum2
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Gum2

Gebruiker
Lid geworden
30 mrt 2007
Berichten
80
Hallo,

Ik heb een batch file gemaakt die van iedere server die in de IPlist.txt voorkomt moet kijken of deze 'up' of 'down' is en deze vervolgens naar een textbestand wegschrijven.
Ik heb dit batch bestand werkend gekregen indien deze draait in een dir. zonder spatie.
Echter indien ik het wil draaien in een dir. waarin een spatie voorkomt krijg ik het niet werkend.Zie bijgevoegde voorbeelden.
Ik heb me inmiddels suf gegoogled maar kom niet tot een oplossing.
Wie kan mij hiermee helpen ?

groeten Gum
 

Bijlagen

Probeer eens mappen en bestanden die een spatie bevatten te omsluiten met dubbele aanhalingstekens (").

Dus zoiets:

Copy "C:\Documents and Settings\Tijs\bestand en map met spatie.txt" C:\backup

Etc.
Etc.

Succes,

Tijs.
 
Probeer eens mappen en bestanden die een spatie bevatten te omsluiten met dubbele aanhalingstekens (").

Dus zoiets:

Copy "C:\Documents and Settings\Tijs\bestand en map met spatie.txt" C:\backup

Etc.
Etc.

Succes,

Tijs.

Dat heb ik al gedaan,zie batchnietwerkend.txt en dit werkt helaas niet.

groeten Gum
 
Ik zie een quote ( ' ) bij @Echo off (eerste regel) in Nietwerkend.txt
Heeft dat er iets mee te maken? Die quote staat nl. niet in Werkend.txt.

Kun je ons ook vertellen tot hoever het script wél loopt en in welke regel(s) het nu precies misgaat met die spatie in de padnaam?

Tijs.
 
Ik zie een quote ( ' ) bij @Echo off (eerste regel) in Nietwerkend.txt
Heeft dat er iets mee te maken? Die quote staat nl. niet in Werkend.txt.

Kun je ons ook vertellen tot hoever het script wél loopt en in welke regel(s) het nu precies misgaat met die spatie in de padnaam?

Tijs.

Die quote voor echo off heeft er niets mee te maken,die heb ik er tijdelijk voor gezet om die regel uit te zetten.
Het gaat mis in de regel :
for /f "tokens=*" %%I in ("D:\Test 123\IPlist.txt") do call : pinger %%I
De uitkomst in de file pingLOG.txt is dan n.l. :
'Ping-aanvraag kan host D:\Test niet vinden. Controleer de naam en probeer het
opnieuw.'
De spatie tussen Test en 123 is hier de oorzaak van maar hoe dit op te lossen is mij onbekend.
Ik moet nu even weg ben rond 15:00 uur weer terug.

groeten Gum
 
Laatst bewerkt:
Een directe oplossing heb ik niet, maar een workaround wel, denk ik. Even voortbordurend op je voorbeeld-batchfile:

Zet eens een CD "D:\Test 123" vooraan in je batchfile. Je kunt dan overal nog steeds de absolute padnamen gebruiken (o.a. bij de ">>" afvang-regels), maar van je For regel kun je dan maken:

Code:
for /f "tokens=*" %%I in (D:IPlist.txt) do call :pinger %%I

Hopelijk werkt dit wel?

Tijs.
 
Een directe oplossing heb ik niet, maar een workaround wel, denk ik. Even voortbordurend op je voorbeeld-batchfile:

Zet eens een CD "D:\Test 123" vooraan in je batchfile. Je kunt dan overal nog steeds de absolute padnamen gebruiken (o.a. bij de ">>" afvang-regels), maar van je For regel kun je dan maken:

Code:
for /f "tokens=*" %%I in (D:IPlist.txt) do call :pinger %%I

Hopelijk werkt dit wel?

Tijs.

Dit werkt inderdaad.
Blijf toch echter wel benieuwd hoe het probleem met die spatie opgelost kan worden.
In iedergeval bedankt voor de hulp

Gum
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan