Пакетный скрипт: поиск, если папка содержит какие-либо файлы - PullRequest
3 голосов
/ 13 октября 2010

Я пытаюсь получить пакетный скрипт, чтобы проверить, содержит ли папка какие-либо файлы.Пока это то, как далеко я ушел:

IF EXIST %FILEPATH%\%%i\FromGlobus\%FILE% (

%WINZIP% %FILEPATH%\GlobusEOD\ExtraFiles\%ZIPFILE% -m %FILE%
IF errorlevel 1 goto subBADEND

)

, где %FILE% равно *.*, но происходит попытка заархивировать файлы, даже если их нет, и поэтому не удается!

Любые советы или идеи?

Спасибо

Ответы [ 4 ]

2 голосов
/ 16 ноября 2011

После некоторой работы с моими собственными сценариями

Вариант ответа @ Belisarius ' - это то, что я использовал некоторое время ... Немного повозившись, версия @ NimeCloud просто не работает на моей машине XP ...

Я придумала смесь из двух, которая, кажется, работает для моих нужд:

%FOLDER%=C:\Temp
FOR /F %%i in ('dir /b "%FOLDER%\*.*"') DO ( goto :Process )
goto :Exit

:Process
...
...
...

:Exit
exit
1 голос
/ 19 октября 2011

dir . возвращается. .. возможно, эти виртуальные каталоги вызывают беспорядок. Вы можете попробовать НАЙТИ трубу, как показано ниже:

SET filter=*.*
SET notfound="File not found"

DIR %filter% | FIND %notfound% 
@If ErrorLevel 1 Goto :end
1 голос
/ 14 октября 2010

Вы можете использовать что-то вроде

set VAR=init
for /f %%a in ('dir /b c:\kk\*.*') do set VAR=exists
if %VAR%==exists ...

Не очень эффективно в случае больших каталогов, но работает.

НТН!

0 голосов
/ 25 июля 2017

Если вы используете /A:-D для команды dir, то он переключит код возврата, если в каталоге есть файлы.Работает только для файлов (/A:D не будет работать для подкаталогов таким же образом)

dir /A:-D /B "mydir" >nul 2>nul && echo.mydir having files

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...