CMD/BAT - Удаление файлов по списку
-
Freddy1984
CMD/BAT - Удаление файлов по списку
Здравствуйте! Прошу помощи.
For /f "tokens=*" %%i in (list.txt) do attrib -a %%i
attrib -a %0
Исходя из данного скрипта, список удаляемых слов/строк должен находится в файле "list.txt"
Вопрос: а как сделать так, что бы список слов/строк можно было прописать в самом скрипте, а не ссылаясь на отдельный файл со списком на удаление строк из "list.txt"?
Спасибо.
For /f "tokens=*" %%i in (list.txt) do attrib -a %%i
attrib -a %0
Исходя из данного скрипта, список удаляемых слов/строк должен находится в файле "list.txt"
Вопрос: а как сделать так, что бы список слов/строк можно было прописать в самом скрипте, а не ссылаясь на отдельный файл со списком на удаление строк из "list.txt"?
Спасибо.
-
Busla
Re: CMD/BAT - Удаление файлов по списку
пропишите в начале скрипта закомментированный список файлов и ссылайтесь на сам скрипт
-
alpap
Re: CMD/BAT - Удаление файлов по списку
а как вам такой винегрет?
в переменной %teg% вид тега, разделяющего блоки, в переменной %sn% - номер нужного блока, если номер не указать (оставить эту переменную пустой), будет выведен последний блок, спецсимволов не боится.
в переменной %teg% вид тега, разделяющего блоки, в переменной %sn% - номер нужного блока, если номер не указать (оставить эту переменную пустой), будет выведен последний блок, спецсимволов не боится.
Код: Выделить всё
@echo off
set "teg=---"& set "sn=3"
setlocal enabledelayedexpansion
<"%~f0" (for /f "skip=1 delims=[]" %%a in ('find /n /v ""^|findstr/lc:"%teg%"') do @set/a n+=1, n_=n-1, sn_=sn+1& set "N!n!=%%a")
if "%sn%"=="" (set/a nd=N%n_%+1, kd=N%n%-1) else (set/a nd=N%sn%+1, kd=N%sn_%-1)
setlocal disabledelayedexpansion
<"%~f0" (for /f "delims=" %%a in ('"for /l %%a in (%nd%,1,%kd%) do @find /n /v ""|find "[%%a]""') do @set "s=%%a"& cmd/v/c echo[!s:*]^^=!)
pause& exit
:: Список блоков
------------------
C:\papka\file1.txt
C:\papka\file2.txt
C:\papka\file3.txt
------------------
C:\papka\file1.cmd
C:\papka\file2.cmd
C:\papka\file3.cmd
------------------
C:\papka\file1.bat
C:\papka\file2.bat
C:\papka\file3.bat
------------------
C:\papka\file1.exe
C:\papka\file2.exe
C:\papka\file3.exe
-------------------
Busla
Re: CMD/BAT - Удаление файлов по списку
megaloman, Цитата megaloman:
При развитии скрипта, если у Вас возникнет необходимость, список файлов должен быть после всего кода.
это не обязательно - развивать можно например так:
Код:
При этом считывание строк производится от метки до метки - ну или до конца файла - при отсутствии маркера конца чтения...
При развитии скрипта, если у Вас возникнет необходимость, список файлов должен быть после всего кода.
CMD/BAT - Удаление файлов по списку
это не обязательно - развивать можно например так:
Код:
Код: Выделить всё
@ECHO OFF
SET "BEGIN_MARKER=:ENDFILE1"
SET "END_MARKER=:ENDFILE2"
FOR /F "usebackq tokens=1 delims=:" %%a IN (`FINDSTR /N /B /C:"%BEGIN_MARKER%" "%~0"`) DO SET "SKIP_LINE=%%a"
CALL :WORK "%SKIP_LINE%" "%END_MARKER%" "%~0"
GOTO :EOF
:WORK
FOR /F "usebackq skip=%~1 tokens=1 eol=; delims=" %%a IN (`TYPE "%~3"`) DO IF NOT "%%a"=="%~2" (ECHO %%a) ELSE (GOTO :EOF)
GOTO :EOF
:ENDFILE1
;1
2
3
4
5
:ENDFILE2
6
7
8При этом считывание строк производится от метки до метки - ну или до конца файла - при отсутствии маркера конца чтения...
-
y--
Re: CMD/BAT - Удаление файлов по списку
Вообще, крайне желательно не использовать подобный подход. Должно быть: мухи отдельно, котлеты отдельно код отдельно, данные отдельно.
-
Iska
Re: CMD/BAT - Удаление файлов по списку
Вообще, крайне желательно не использовать подобный подход. Должно быть: мухи отдельно, котлеты отдельно код отдельно, данные отдельно.
-
Iska
Re: CMD/BAT - Удаление файлов по списку
Iska,
Цитата М.Жванецкий:
Надо, чтобы вы руководили принципами, а не принципы вами.
Главное - логика ситуации. Иметь 2 файла это часто неудобно. Кстати, MS SQL Server, в базе - и данные, и процедуры для их обработки.
Цитата М.Жванецкий:
Надо, чтобы вы руководили принципами, а не принципы вами.
Главное - логика ситуации. Иметь 2 файла это часто неудобно. Кстати, MS SQL Server, в базе - и данные, и процедуры для их обработки.
-
Iska
Re: CMD/BAT - Удаление файлов по списку
Iska,
Цитата Iska:
Когда Вам понадобятся разные наборы данных — порочность подхода сразу становится видна.
в приведенном мною примере уже сразу заложена возможность использовать произвольное количество наборов (однородных в пределах набора) данных...
Цитата Iska:
И там — таблицы отдельно, запросы отдельно.
запросы??? Сторки, функции, типы пользовательких данных, вьюхи - и это все прям отдельно? Да у вас, батенька, винегрет не перемешан
Цитата Iska:
Когда Вам понадобятся разные наборы данных — порочность подхода сразу становится видна.
CMD/BAT - Удаление файлов по списку
в приведенном мною примере уже сразу заложена возможность использовать произвольное количество наборов (однородных в пределах набора) данных...
Цитата Iska:
И там — таблицы отдельно, запросы отдельно.
CMD/BAT - Удаление файлов по списку
запросы??? Сторки, функции, типы пользовательких данных, вьюхи - и это все прям отдельно? Да у вас, батенька, винегрет не перемешан

-
y--
Re: CMD/BAT - Удаление файлов по списку
Цитата y--:
в приведенном мною примере уже сразу заложена возможность использовать произвольное количество наборов (однородных в пределах набора) данных...
Повторяю: идея порочна по сути. Вы предлагаете жить с заранее и строго предопределёнными наборами данных.
Цитата y--:
запросы??? Сторки, функции, типы пользовательких данных, вьюхи - и это все прям отдельно? Да у вас, батенька, винегрет не перемешан
Смешались в кучу кони, люди. y--, не натягивайте сову на глобус.
в приведенном мною примере уже сразу заложена возможность использовать произвольное количество наборов (однородных в пределах набора) данных...
CMD/BAT - Удаление файлов по списку
Повторяю: идея порочна по сути. Вы предлагаете жить с заранее и строго предопределёнными наборами данных.
Цитата y--:
запросы??? Сторки, функции, типы пользовательких данных, вьюхи - и это все прям отдельно? Да у вас, батенька, винегрет не перемешан
CMD/BAT - Удаление файлов по списку
Смешались в кучу кони, люди. y--, не натягивайте сову на глобус.
-
Iska
Re: CMD/BAT - Удаление файлов по списку
Цитата Iska:
код отдельно, данные отдельно.
скрипты обычно и делают для частных задач, реализовывать общее решение часто и избыточно и нерационально
в общем-то от этого (преждевременной оптимизации и заделов на будещее масштабирование) часто предостерегают и при обычной разработке ПО
ну а конкретно такой подход чуть ли не Best Practice - exe файлы в основном для этого и придумали, чтобы впихать туда помимо кода ещё и ресурсы. Тут всё красивенько - не захардкодено, а отдельным списком
код отдельно, данные отдельно.
CMD/BAT - Удаление файлов по списку
скрипты обычно и делают для частных задач, реализовывать общее решение часто и избыточно и нерационально
в общем-то от этого (преждевременной оптимизации и заделов на будещее масштабирование) часто предостерегают и при обычной разработке ПО
ну а конкретно такой подход чуть ли не Best Practice - exe файлы в основном для этого и придумали, чтобы впихать туда помимо кода ещё и ресурсы. Тут всё красивенько - не захардкодено, а отдельным списком