2012-05-30 9 views
17

Ciao Sto cercando di scrivere un file batch per controllare per vedere se ci sono dei file di qualsiasi tipo all'interno di una determinata cartella.Verificare se qualsiasi tipo di file esiste in una directory utilizzando script batch

Finora ho provato la seguente

if EXIST FOLDERNAME\\*.* (echo Files Exist) ELSE (echo "Empty") 

posso farlo funzionare se conosco l'estensione del file, ad esempio un file txt con il follwing

if EXIST FOLDERNAME\\*.txt (echo Files Exist) ELSE (echo "Empty") 

Grazie per la vostra aiutare

+0

possibile duplicato di [Batc h script: cerca se una cartella contiene file] (http://stackoverflow.com/questions/3922200/batch-script-search-if-a-folder-taintain-any-files) – Synetech

risposta

4

È possibile utilizzare questo

@echo off 
for /F %%i in ('dir /b "c:\test directory\*.*"') do (
    echo Folder is NON empty 
    goto :EOF 
) 
echo Folder is empty or does not exist 

Tratto da here.

Questo dovrebbe fare quello che ti serve.

+0

Non funziona. "File non trovato". Eppure esiste. – Owl

28

Per verificare se una cartella contiene almeno un file

>nul 2>nul dir /a-d "folderName\*" && (echo Files exist) || (echo No file found) 

Per verificare se una cartella o uno dei suoi discendenti contengono almeno un file

>nul 2>nul dir /a-d /s "folderName\*" && (echo Files exist) || (echo No file found) 

Per verificare se una cartella contiene almeno un file o una cartella.
Nota aggiunta di /a opzione per abilitare ritrovamento di file/cartelle nascoste e di sistema.

dir /b /a "folderName\*" | >nul findstr "^" && (echo Files and/or Folders exist) || (echo No File or Folder found) 

Per verificare se una cartella contiene almeno una cartella

dir /b /ad "folderName\*" | >nul findstr "^" && (echo Folders exist) || (echo No folder found) 
+0

+1. 'FIND/V" "' sembra funzionare bene come 'FINDSTR"^"'. –

+1

@AndriyM - 'FINDSTR .' funziona pure :-) – dbenham

+11

Cos'è questa strega ?! – Shawson

8

Per i file in una directory, è possibile utilizzare le cose come:

if exist *.csv echo "csv file found" 

o

if not exist *.csv goto nofile 
+0

Ciò è utile solo se potrebbe esistere solo un sottoinsieme molto limitato di tipi di file; e tu lo sai per certo; e sai cosa sono quelli. Questa è una soluzione molto limitata. – user1167442

+0

Un'estensione di '.csv' non garantisce che la voce sia un file. Non c'è niente che ti impedisca di creare una directory con un '.csv', o qualsiasi altra estensione. – dbenham

Problemi correlati