Компьютерный форум 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=136408)

daswer 31-03-2009 17:14 1080215

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

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 31-03-2009 17:43 1080252

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 31-03-2009 23:33 1080597

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 02-04-2009 08:22 1081676

Спасибо большое. Помогло.

Павел_Князь@vk 21-08-2013 15:24 2205162

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

Sphinx114 21-08-2013 16:02 2205177

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

del /f /s /q /a "papka1" "papka2" "papka3"

Павел_Князь@vk 21-08-2013 16:19 2205182

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


Время: 23:36.

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