Bobby Rachel
Bobby Rachel

Reputation: 473

Check folder is empty using batch command?

for /F %%i in ('dir /b "C:\Program Files\Apache folder\*.*"') do (
   echo Folder is NON empty
   goto launch_app
)

Upvotes: 11

Views: 33582

Answers (5)

Gh3ttoKinG.
Gh3ttoKinG.

Reputation: 114

I wasn't satisfied with the given answers because I try to avoid for loops, goto and temp files whenever I can.

To check if the folder is empty:

dir /b /s /a "C:\Program Files\Apache folder\" | findstr .>nul || (
  echo Folder is empty
)

To check if folder is not empty:

dir /b /s /a "C:\Program Files\Apache folder\" | findstr .>nul && (
  echo Folder is NOT empty
)

Upvotes: 7

numdig
numdig

Reputation: 121

File Not Found

@for /f "tokens=*" %%a in ('dir /b /a-d "C:\Progra~1\Apache"') do @...

The error that you see when you run this command, comes for the standard error output. But that is only a warning printed to your console. When this case happens, the body of the iteration won't be evaluated, and the algorithm based on this "for/dir" instruction, is in fact correct.

Now, if you want to get rid of this ugly error message, you need to add the following to your script, in order to redirect the standard error to null device:

2>NUL

so for instance, in a batch file, with the appropriate escape character:

@rem Print a list of file paths
@for /f "tokens=*" %%a in ('dir /b /a-d "%srcPath%" 2^>NUL') do @echo(%srcPath%\%%a

Upvotes: 2

RHSR
RHSR

Reputation: 21

@echo off
cls
echo.
echo.
echo.
echo                  TEST FOR EMPTY DIRECTORY
echo             was tested with "&" without a file
echo.
echo              Can use Full or Subfolder path
echo               (as below) of where test.bat
echo.
    set p=Raw\
echo.
echo                  Just to show p is set
echo.
echo                       "p=%p%"
echo.
echo.
echo.
pause

for /F %%i in ('dir /b /a "%p%*"') do (
    echo Folder %p% was NOT empty
    goto :process
)
    echo Folder %p% was empty 



:process
    echo "BLAH, BLAH, BLAH "
:end
    pause
    exit
rem Copy past in notepad to try. "Create and use or change the "raw" to your own fancy."
rem Hope this helps. Works great for me and I use it.
rem Have Fun.
rem Note use go to end next line after was empty. Worked great in w10. (this program hmm)
rem IF IT WORKS FOR YOU . GIVE A +. THX!

Upvotes: 2

Kueihao Chen
Kueihao Chen

Reputation: 1

dir C:\TEST\*.* /a/b/d/od>C:\TEMP\CHECKFOLDER
for /R C:\TEMP\ %%? in (CHECKFOLDER) do (
 if "%%~z?"=="0" (
  ECHO Folder is empty.
 ) ELSE (
  ECHO Folder is NOT empty
 )
)

Upvotes: 0

Endoro
Endoro

Reputation: 37589

try this:

for /F %%i in ('dir /b /a "C:\Program Files\Apache folder\*"') do (
    echo if you see this the folder is NOT empty
    goto launch_app
)

Upvotes: 13

Related Questions