Показать полную графическую версию : [решено] удаление содержимого папок
Сведущая проблема есть папка "обмен" в сети на серваке в ней куча папок для каждого отдела, нужно каждую ночь чистить их, задача тривиальная
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
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 (http://www.microsoft.com/downloadS/details.aspx?familyid=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en) выставить нужные разрешения.
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-путями.
Спасибо большое. Помогло.
Павел_Князь@vk
21-08-2013, 15:24
почти такая же проблема, у меня есть 3 директории в каждой из которых примерно по сотне директорий и в каждой из них куча файлов, мне нужно очистить каждую директорию от файлов, не удаляя директории, попробовал сам - получается удалить вместе со вложенными директориями.
Sphinx114
21-08-2013, 16:02
Павел_Князь@vk, вот так можно очистить от файлов 3 папки с подпапками:
del /f /s /q /a "papka1" "papka2" "papka3"
Павел_Князь@vk
21-08-2013, 16:19
Sphinx114, спасибо ! уже решил, немного по-другому, я сначала просто дико тормозил, давая винде "rm" :) а она меня не понимала
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC