.BAT Bestand maken

Status
Niet open voor verdere reacties.

NLCookie

Nieuwe gebruiker
Lid geworden
14 okt 2013
Berichten
4
Beste leden,

Graag zou ik een .bat bestand willen maken dat een leeg (eventueel .txt) bestand andere schijf creëert.
Dit bestand moet hier vervolgens +-5 seconden staan, en daarna weer verwijdert worden.
Ook zou het fijn zijn als er een controle is, zodat wanneer het bestand al bestaat, er geen actie wordt ondernomen (vanwege het 2x uitvoeren van .bat bestand)
Die controle hoeft geen melding te geven, maar is ervoor om dubbel uitvoeren te voorkomen.
Ik weet niet precies hoe alles met die .bat werkt, maar dit is hoe het er in mijn hoofd ongeveer uitziet:

IF D:/map/test.txt (true, controle of het bestand bestaat)
[
**geen actie**
]

ELSE
[
create D:/map/test.text
**tijd 5 seconden later....**
delete D:/map/test.txt
]

Ik hoop dat iemand mij hiermee kan helpen :-)

Vriendelijke groet,

NLCookie
 
Paar tips:
a. IF EXIST "D:\map\test.txt" gebruiken om te kijken of het bestand al bestaat.
b. 5 seconden wachten m.b.v. Sleep 5 of evt. ping -n 5 -w 1 127.0.0.1 > nul

Tijs.
 
@gast0158: Sinds wanneer is delay een commando dat in batch gebruikt kan worden?? Klinkt meer als Visual Basic, VBScript etc. maar delay is geen batch commando.

Tijs.
 
Je kunt wel het volgende gebruiken om 5 seconden te wachten:
timeout /t 5

Eventueel met > nul er achter.
 
Laatst bewerkt:
Probleem met dit is dat (aan het eind) 3 commando's achter elkaar uitgevoerd moet worden, wat voorzover ik weet niet kan.

Weet iemand of dit met & of && kan?
 
@dorado: Dat kan inderdaad óf met labels en GOTO werken, zodat de 3 commando's op een eigen regel kunnen blijven staan.

Tijs.
 
Je kunt ook een IF ELSE structuur verdeeld over meerdere regels gebruiken. Een voorbeeld heb ik nu helaas niet bij de hand omdat ik niet bij m'n eigen PC zit.

Edit:
Syntax voorbeeld:
Code:
IF <statement>  (
..
..
) ELSE (
...
...
)

Hou de haken op de getoonde positie. Dit mag ook een geneste IF ELSE zijn.
 
Laatst bewerkt:
Wat dit topic met Win 7 te maken heeft?
Verplaatst van Win 7 naar deze sectie.
 
Ok, probeer eens dit script:

Open Kladblok. Klik op Start → Alle Programma's → Bureau-Accessoires → Kladblok.
Kopieer onderstaande code:

@ECHO OFF
FOR %%I IN (
D:\Map\test\test.txt
) DO (
IF EXIST %%I (
GOTO X
) ELSE (
GOTO Y))

: X
EXIT

: Y
MD D:\Map\test
ECHO.>>D:\Map\test\test.txt
TIMEOUT /T 5
TASKKILL /IM TIMEOUT.EXE /F
RD /S /Q D:\Map\test D:\Map


Ga naar Bestand - Opslaan als.
Bij "Opslaan in" kies je: Bureaublad.
Bij "Bestandsnaam" zet je:helpmij.bat.
Bij "Opslaan als type" selecteer je: Alle bestanden (*.*).
Klik op de knop Opslaan. Rechtsklik helpmij.batAls administrator uitvoeren
 
Laatst bewerkt:
@dorado: Zover ik de startposting lees hoeven er geen bestanden te worden aangemaakt zoals in test.txt zijn opgenomen, maar alleen een test.txt bestand zélf.
Dus je hele FOR %%I IN (D:\MAP\test\test.txt) lijkt me fout (en daarmee de hele flow ook).

Ik lees de startposting als:

Code:
IF NOT EXIST D:\MAP\test\test.txt (
MD D:\MAP\test
COPY nul D:\MAP\test\test.txt
SLEEP 5
REM Hier evt. nog wat andere acties
DEL D:\MAP\test\test.txt
REM Als de mappenstructuur weg moet: RD /Q /S D:\MAP
) ELSE (
REM Acties als het bestand wel had bestaan. Dat zijn GEEN acties, als ik de starposting zo bekijk.
)

Tijs.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan