Categorie: DOS

Scripts [batch]: wel of geen bestanden in map

Wanneer je in DOS wilt testen of in een map bestanden staan, dan kan deze code snippet erg handig zijn.

if exist "c:\Data\Test\." >nul >2>nul dir /a-d "C:\Data\Test\*" && (echo Files Found) || (echo File Not Found) >NUL

In dit voorbeeld wordt eerst getest of de map bestaat. Wanneer die map bestaat, dan wordt er in die map gekeken naar de aanwezigheid van bestanden. Met “a-d” worden directories uitgesloten. Wanneer er bestanden gevonden worden, dan kun je iets uit laten voeren. In dit voorbeeld wordt de tekst “Files exist” uitgevoerd. Maar wanneer er geen bestanden gevonden worden, dan wordt de tekst “No file found” uitgevoerd.

Iets verder uitgewerkt kan het script er als volgt uitzien.

@ECHO OFF
 set TestDir=%SYSTEMDRIVE%\Temp
 if exist "%TestDir%\." >nul >2>nul dir /a-d "%TestDir%\*" && (goto :DeleteFiles) || (goto :End) >NUL

:DeleteFiles
 echo Deleting files. One moment.
 del %TestDir%\*.* /S /Q >NUL
 echo Done.

:End

In dit voorbeeld worden bestanden uit de map verwijderd wanneer er bestanden in de map blijken te staan.