|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выполнение команды для списка файлов |
|
CMD/BAT - Выполнение команды для списка файлов
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Срочно) Напишите пожалуйста любой простой пример по этой функции FOR %x IN (список файлов) DO команда. Объясните подробно)
|
|
Отправлено: 10:55, 14-07-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:59, 14-07-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 795
|
Скрытый текст
@echo off chcp 866 rem recursive Packing (move) files to archive in subfolders rem запаковка в rar файлов по указаннному расширению с удалением исходного файла. -move rem на вход - папка и в ней копаемся. Для уменьшения размеров библиотеки с книгами. ;-) @rem filename == archivename @rem check parameters @if "%~1"=="" goto :NoParam @chdir /d %1 @if %errorlevel% neq 0 goto :NoParam @if exist packErr.log del packErr.log echo ^--------------------------------------------------- echo. set /p ext=[ Enter file Extensions for Packing ] : rem main loop for /f "delims=%%" %%i in ('dir /s /b *.%ext%') do ("%~dp0..\Plugins\arc\rar.exe" m -m5 -ep -ri3 "%%~dpni".rar "%%i") 2>packErr.log if exist packErr.log start "%SYSTEMROOT%\notepad.exe" packErr.log exit rem В случае успешного окончания операции WinRAR завершает работу с нулевым (0) кодом возврата. rem Если код возврата отличается от нулевого, это говорит о том, что произошла какая-то ошибка. rem Код возврата Описание rem :0 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Операция успешно завершена. rem exit rem :1 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Предупреждение. Произошли некритические ошибки. rem pause rem exit rem :2 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% . Произошла критическая ошибка. rem rem pause rem exit rem exit rem :3 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% При распаковке обнаружена ошибка CRC. rem pause rem exit rem exit rem :4 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Предпринята попытка изменить заблокированный архив. rem pause rem exit rem :5 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Произошла ошибка записи на диск. rem pause rem exit rem :6 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Произошла ошибка открытия файла. rem pause rem exit rem :7 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Ошибка при указании параметра в командной строке. rem pause rem exit rem :8 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Недостаточно памяти для выполнения операции. rem pause rem exit rem :9 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Ошибка при создании файла. rem pause rem exit rem :255 rem echo ^================= ERRORLEVEL: %ERRORLEVEL% Операция была прервана пользователем. rem pause rem exit :NoParam echo. ECHO ================= %~n0. Command line error: "%*" pause EXIT /B 1 |
Отправлено: 17:12, 14-07-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Скажите,
Цитата MrDmitri:
|
|
Отправлено: 17:19, 14-07-2017 | #4 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Iska, в справке тоже нет простого примера для файлов
да и как по мне, так очевидно, что писал это человек сидящий на зачёте/экзамене/контрольной - откуда у него в телефоне консоль Windows? :-)))) |
|
Отправлено: 10:45, 15-07-2017 | #5 |
Забанен Сообщения: 795
|
никак нет, отчего ж поиздеваться Совершенно нет. просил пример - дал пример. Я подумал что человек как и я, не сильно может читать справку, ему на реальном примере понятней будет. Для мя так и есть: справка это хорошо и правильно. Да вот, лучше понимаю, когда вижу\щупаю чёнить конкретное. живой пример, хехех....
зы. кстати, может подскажете как изменить этовсё. файл ошибок создается всегда, даже если ошибок нету. Ну и соотв. открывается. Пустой. это можно обойти, чтоб не создавался файл если ошибок нет |
Отправлено: 17:56, 15-07-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата x0r:
Цитата x0r:
|
|||
Отправлено: 20:38, 15-07-2017 | #7 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать x0r,
Цитата Iska:
Пытался без этого, у меня не вышло. Развлекался следующим кодом:
@Echo Off
cls
Set "Log=packErr.log"
Set Arc="C:\Program Files\WinRAR\Rar.exe" m -m5 -ep -ri3
Set "ArcExt=rar"
if "%~1"=="" (
Echo:
:Abend
Echo --- "%~dpnx0" "%*" Command line error
pause
EXIT /B 1
)
Pushd "%~1"|| GoTo :Abend
Echo ---------------------------------------------------
Echo:
Set /P Ext=[ Enter file Extensions for Packing ] :
2>"%Log%" (FOR /R "%~1" %%f IN ("*.%Ext%") DO Echo %%f &%Arc% "%%~dpnf.%ArcExt%" "%%f" >nul)
FOR %%f IN ("%Log%") DO If %%~zf==0 (Del "%Log%") Else (Start " " "%SYSTEMROOT%\notepad.exe" "%Log%")
Popd
Цитата Busla:
|
||
------- Последний раз редактировалось megaloman, 15-07-2017 в 23:21. Отправлено: 23:15, 15-07-2017 | #8 |
Забанен Сообщения: 795
|
писец ;-) нашел как на CyberForum
@echo off rem если в имени папки будет смешение языков. нопример орочьего(укр.) и русского, то будет ошибка. rem если же сделать файл в UTF-8 (chcp 65001) то пакует без вопросов, но нифига не видно, в консоли кракозябры. @chcp 866 rem recursive Packing (move) files to archive in subfolders rem запаковка в rar файлов по указаннному расширению с удалением исходного файла. -move rem на вход - папка . Для уменьшения размеров библиотеки с книгами. rem check parameters @if "%~1"=="" goto :NoParam @chdir /d %1 @if %errorlevel% neq 0 goto :NoParam @if exist packErr.log del packErr.log echo ^--------------------------------------------------- echo. set /p ext=[ Enter file Extensions for Packing ] : rem main loop for /f "delims=%%" %%i in ('dir /s /b *.%ext%') do ("%~dp0..\Plugins\arc\rar.exe" m -m5 -ep -ri3 "%%~dpni".rar "%%i") 2>packErr.log rem если ошибок не было и файл нулевой, то выход, не открываем for %%i in (packErr.log) do (set /a size=%%~Zi) if %size% == 0 (goto :EOF) else (if exist packErr.log start "%SYSTEMROOT%\notepad.exe" packErr.log) exit |
Отправлено: 22:31, 17-07-2017 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Запрос параметров и выполнение команды | sea707 | Скриптовые языки администрирования Windows | 2 | 25-10-2012 12:46 | |
CMD/BAT - [решено] выполнение команды cmd | caustic | Скриптовые языки администрирования Windows | 5 | 20-03-2011 08:51 | |
CMD/BAT - выполнение команд из списка в txt файле | systemroot | Скриптовые языки администрирования Windows | 2 | 12-02-2011 17:49 | |
запрет запуска (на выполнение) файлов для обыкновенных пользователей | theambient | Microsoft Windows 2000/XP | 2 | 03-08-2009 12:09 | |
CMD/BAT - [решено] удаленное выполнение команды | Diver1 | Скриптовые языки администрирования Windows | 2 | 20-03-2009 10:39 |
|