![]() |
Изменение текста в файле
Добрый день.
Есть компьютер, на котором расположены общие папки по отделам. Есть необходимость регулярно готовить отчеты об изменениях в правах на папки, т.е. кто получил доступ до какой папки. Что есть и работает. Есть файл spisok.txt - в котором перечислены названия папок Код:
folder1 Код:
for /f %%a in (spisok.txt) do cacls z:\%%a >> "c:\documents and settings\user\desktop\cacls\%%a.LOG" Код:
---------- FOLDER1.LOG F - полные OI - Для этой папки и ее файлов CI - Для этой папки и ее подпапок (IO)(CI) Для этой папки, ее подпапок и файлов (OI)(CI)(IO) Только для подпапок и файлов (CI)(IO) Только для подпапок (OI)(IO) Только для файлов и т.д. Вот только не знаю как. |
tarasov.evgeny, как вариант обработки файла spisok_all_folder.txt:
Код:
@Echo Off |
Помогите разобрать по строчкам:
SetLocal EnableExtensions EnableDelayedExpansion - здесь наверное просто опечатка? S - не нужна. Вы включаете всё возможности командной строки. вот здесь темный лес. Код:
For /F "UseBackQ Delims=" %%i In ("%$LOG%") Do ( А затем ещё страшнее :) Код:
If Not "---"=="!$LINE:~0,3!" ( set $RGHT и переменной LINE дается новое значение? Что значить знак ! Что значить :~0,2 Где это можно посмотреть в стандартном описание, я что-то такого не нахожу. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Я прошу прощения за назойливость, но я не могу найти описание вот таких частей как:
Код:
:~0,2 Код:
:~-2,1! Код:
If Not "---"=="!$LINE:~0,3!" ( Из команды if мне понятно, что мы пропускаем строчку с тире и разбираем другие строки. Причем мы берем не всю строку а с какими-то атрибутами - !:~0,3! и добавляем две переменные. Одна из них задает права [!$RIGHT]. Опять же не понятно, почему два %, что такое !, и т.д. Вроде как бы одно подставляется в другое и так три раза, но например каким макаром в строку попадает перменная в который задано, что F - > полные. Для меня загадка. Вот хоть убейте не разберусь :( Я может не там смотрю (или не так :) ), но не нахожу информации :( |
"!$LINE:~-2,1!" - возвращает предпоследний символ "$LINE"
"!$LINE:~0,-2!" - возвращает "$LINE" без последних двух символов цитата из справки ("SET /?"): Цитата:
CMD/BAT - [решено] Раскрытие имени файла во вложеном For CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. |
Время: 02:04. |
Время: 02:04.
© OSzone.net 2001-2025