CMD/BAT - [решено] удаление содержимого папок

Ответить
Аватара пользователя
daswer

CMD/BAT - [решено] удаление содержимого папок

Сообщение daswer »

Сведущая проблема есть папка "обмен" в сети на серваке в ней куча папок для каждого отдела, нужно каждую ночь чистить их, задача тривиальная


Цитата:



c:

cd c:\data

rmdir /s /q c:\data\ОТДЕЛ1

mkdir c:\data\ОТДЕЛ1

rmdir /s /q c:\data\ОТДЕЛ2

mkdir c:\data\ОТДЕЛ2

dir > list.txt



так я реализовал раньше, но надо чтоб на папку ОТДЕЛx применялись разрешения в АД, а при моем подходе при создание этой папки все разрешения затираются

пример разрешений для отдела1 (Админ-FC Отдел1-FC Отделы R) и так для для каждого отдела, я уже понял что мой подход не правильный, понял что нужно папки не пере создавать а просто их вычищать, помогите разобраться с проблемой.
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] удаление содержимого папок

Сообщение Petya V4sechkin »

daswer, можно так:



Код:

Код: Выделить всё

@Echo Off
SetLocal EnableExtensions
CD /D C:\data
If %ErrorLevel% Neq 0 GoTo :Eof
For /F "Delims=" %%I In ('Dir /AD /B') Do (
  For /F "Delims=" %%J In ('Dir /AD /B "%%I"') Do RD /S /Q "%%I\%%J"
  Del /F /Q "%%I\*"
  Del /F /Q /AH "%%I\*"
  Del /F /Q /AS "%%I\*"
)

2-й вариант: удалять все (как вы делаете), но после этого с помощью Cacls или
SubInACL
выставить нужные разрешения.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] удаление содержимого папок

Сообщение Iska »

daswer, можете попробовать на основе такого:



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
if exist "%~1" (
    echo Clearing folders in [%~1].
    pushd "%~1" && (rmdir /s /q "%~1" & popd) 2>nul
) else (
    echo Not found [%~1]
)
endlocal
exit /b 0

Что-то наподобие:



Код:

Код: Выделить всё

ClearFolder.cmd "c:\data\ОТДЕЛ1"
ClearFolder.cmd "c:\data\ОТДЕЛ2"

Будьте осторожны с UNC-путями.
Аватара пользователя
daswer

Re: CMD/BAT - [решено] удаление содержимого папок

Сообщение daswer »

почти такая же проблема, у меня есть 3 директории в каждой из которых примерно по сотне директорий и в каждой из них куча файлов, мне нужно очистить каждую директорию от файлов, не удаляя директории, попробовал сам - получается удалить вместе со вложенными директориями.
Аватара пользователя
Павел_Князь@vk

Re: CMD/BAT - [решено] удаление содержимого папок

Сообщение Павел_Князь@vk »

Павел_Князь@vk, вот так можно очистить от файлов 3 папки с подпапками:



Код:

Код: Выделить всё

del /f /s /q /a "papka1" "papka2" "papka3"
Аватара пользователя
Павел_Князь@vk

Re: CMD/BAT - [решено] удаление содержимого папок

Сообщение Павел_Князь@vk »

Sphinx114, спасибо ! уже решил, немного по-другому, я сначала просто дико тормозил, давая винде "rm" Изображение а она меня не понимала
Ответить

Вернуться в «Скриптовые языки администрирования Windows»