Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаления файла в директории минуя удаления файла в поддиректории (http://forum.oszone.net/showthread.php?t=343967)

ukrshadow 07-02-2020 12:03 2908593

Удаления файла в директории минуя удаления файла в поддиректории
 
Добрый день!
Хелп!) Есть директория в которой много директорий с разными названиями. В каждой этой директории еще директория (тут одинаковые названия), а в этой директории папка с файлом PDF и отдельный файл PDF. Не могу доверстать батник, чтобы он удалял файл PDF из этой директории во всех директориях порядком выше, но не трогал поддиректорию proof c файлом PDF.

Вот пути:
D:\333\articles\1\submission - тут файл PDF, который нужно удалить и тут же папка proof (в ней PDF), в которую батник не должен заходить вообще и ничего с ней не делать.
D:\333\articles\2\submission - тут файл PDF, который нужно удалить и тут же папка proof (в ней PDF), в которую батник не должен заходить вообще и ничего с ней не делать.
D:\333\articles\3\submission - тут файл PDF, который нужно удалить и тут же папка proof (в ней PDF), в которую батник не должен заходить вообще и ничего с ней не делать.
и тд до ~999

По логике, нужен кусок кода который закрывают доступ к папке proof в приделах всех папок D:\333\articles\*

HTML код:

for  /d %%a in ("D:\333\articles\*") do if /i not "%%a"=="*D:\333\articles\*.*\submission\proof" (del/s/q %%~sa\*.zip)
Этот код убивает все PDF в D:\333\articles\*.
PS. PDF файлы именуются системой рандомно....удалять файлы по названию - не вариант

DJ Mogarych 07-02-2020 13:40 2908610

Код:

powershell -command "del D:\333\articles\*\submission\*.pdf"

ukrshadow 07-02-2020 14:32 2908617

Действительно......что-то я очень обходными путями пошел!!
Спасибо!!!

megaloman 07-02-2020 14:34 2908618

ukrshadow, Если делать задачу в точности, как она поставлена, то:
Код:

@Echo Off
        Set "FileIn=D:\333\articles\%%i\submission\*.pdf"
        FOR /L %%i IN (1,1,999) DO If Exist "%FileIn%" Del "%FileIn%"
Exit /B 0


megaloman 07-02-2020 15:19 2908623

ukrshadow, Вот вариант, который будет работать с произвольными именами папок. Имя исключаемой папки задаётся
Код:

@Echo Off
cls
        Set "BoxIn=D:\333\articles"
        Set "Mask=*.pdf"
        Set "Excl=\proof\"
        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /S ^| 2^>nul FIND /V /I "%Excl%"`) Do Del "%%f"
pause
Exit /B 0



Время: 23:29.

Время: 23:29.
© OSzone.net 2001-