Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Логирование действия

Ответить
Настройки темы
CMD/BAT - Логирование действия

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: kosmo
Дата: 16-03-2010
Описание: улучшение внешнего вида
Автоматизация чистки папки от одинаковых архивов. Ведется логирование.

Код: Выделить весь код
setlocal enableextensions enabledelayedexpansion
set OUTPUT=logFile.txt

if "%STDOUT_REDIRECTED%" == "" (
    set STDOUT_REDIRECTED=yes
    cmd.exe /c %0 %* >>%OUTPUT%
    exit /b %ERRORLEVEL%
)

pushd "%KudaArhiv%"

set sMaskFileArh="*.rar"
for /f "delims=" %%i in ('dir %sMaskFileArh% /b /a^:-d /o^-d') do ( 
	if exist "%%i" (
   	set /a tekKol=!tekKol! + 1
	set sParam="skip=!tekKol! delims="
	call :MetkaCikl2 "%%i" !sParam! %sMaskFileArh%
        )
)
popd
endlocal
exit /b 0


:MetkaCikl2
	setlocal enableextensions enabledelayedexpansion
	for /f %2 %%j in ('dir %3 /b /a^:-d /o^-d') do (
  	      if "%%j" NEQ %1 (echo N|comp.exe %1 "%%j" 1>nul 2>nul && echo _совпадающие файлы %1 был удален=>  "%%j" && del /f /q "%%j")
        )
	endlocal
exit /b 0
Вопрос 1.
Почему при коде
Код: Выделить весь код
set sMaskFileArh="c:\arhiv\*.rar"
 for /f "delims=" %%i in ('dir %sMaskFileArh% /b /a^:-d /o^-d') do (echo %%~fi)
в результате получается полный путь аналогичный %CD%\%%i вместо c:\arhiv\%%i

Вопрос 2.
Каким образом включить в лог строку echo _совпадающие файлы %1 был удален=> "%%j"
которая, как я понимаю, была выключена посредством предыдущей команды 1>nul

Отправлено: 10:12, 16-03-2010

 

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос 2 отпал путем удаления символа ">"
то есть вместо
Код: Выделить весь код
echo _совпадающие файлы %1 был удален=> "%%j"
нужно
Код: Выделить весь код
echo _совпадающие файлы %1 был удален "%%j"

Отправлено: 12:04, 16-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


по второму вопросу рекомендуют добавить /s
то есть должно быть
Код: Выделить весь код
set sMaskFileArh="c:\arhiv\*.rar"
 for /f "delims=" %%i in ('dir %sMaskFileArh% /s /b /a^:-d /o^-d') do (echo %%~fi)
либо использовать pushd и popd
Код: Выделить весь код
set sMaskFileArh=*.rar
set sPath=c:\arhiv
pushd %sPath%
for /f "delims=" %%i in ('dir "%sMaskFileArh%" /b /a^:-d /o^-d') do (echo %%~fi)
popd

Отправлено: 16:23, 24-03-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Логирование действия

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Логирование присутствия и отсутствия интернета Koluna Сетевые технологии 1 25-08-2009 19:40
[решено] Логирование событий Frost_Imp AutoIt 4 20-07-2009 22:22
Включить логирование всех событий на сервере win2003 Napasick Microsoft Windows NT/2000/2003 2 25-03-2008 12:08
Фиксация,логирование установки. Mss Автоматическая установка Windows 2000/XP/2003 3 04-03-2005 13:49
Самопроизвольные действия Cursed Microsoft Windows NT/2000/2003 7 21-01-2003 22:24




 
Переход