2014-02-11 3 views
0

Мой сервер oracle находится в windows 2008 64 bit. Мне нужно, чтобы переместить файлы в listner.logПереместить файлы переименования и zip

E:\DBA_CMDS\Maintenance_Tasks\ClearListenerLog\ArchivedListenerLogs 

из

E:\OracleGrid\11.2.0\grid\log\diag\tnslsnr\enctcorl010\listener\alert\ 

Мне нужно переименовать этот файл как currentdate.log и мой каталог журналов и журналов имя

E:\DBA_CMDS\Maintenance_Tasks\ClearListenerLog\ClearListenerLog.log 

мне нужно zip файл после его переименования и мой 7-ZIP установлен в

C:\Program Files\7-Zip\7Z.EXE. 

Буду признателен, если кто-то может помочь мне написать все это в пакетном скрипте, поскольку я новичок в скрипте Windows.

+0

Можете ли вы перечитайте свой вопрос и посмотреть, если детали перечислены в правильном порядке? Вы говорите, что файл журнала находится в папке «alert», вы хотите, чтобы их переименовали в «20140112.log», но затем вы говорите, что журнал находится в другой папке «ClearListenerLog». Я не совсем следую за тобой. – foxidrive

+0

Извините Foxdrive, – user3297431

+0

Местоположение lister.log: \ OracleGrid \ 11.2.0 \ grid \ log \ diag \ tnslsnr \ enctcorl010 \ listener \ alert \ – user3297431

ответ

1

Испытание это:

@echo off 
set "source=E:\OracleGrid\11.2.0\grid\log\diag\tnslsnr\enctcorl010\listener\alert" 
set "target=E:\DBA_CMDS\Maintenance_Tasks\ClearListenerLog\ArchivedListenerLogs" 

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" 
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" 
set "datestamp=%DD%%MM%%YY%" & set "timestamp=%HH%%Min%%Sec%" 


setlocal enabledelayedexpansion 
set c=0 
for %%a in ("%source%\*.log") do (
set /a c+=1 
"C:\Program Files\7-Zip\7Z.EXE" a "%target%\listener_%datestamp%_!c!.7z" "%%a" 
if not errorlevel 1 del "%%a" 
) 
+0

Это должно работать - это похоже на мое решение в его дублированном вопросе http://stackoverflow.com/questions/21738820/write-script-in-batch-to-rename-and-move-the-file-in-7zip/21742942#21742942. Обратите внимание: вам не нужен цикл for. вы можете напрямую использовать% date%. – Beel

+1

@beel Спасибо. Проблема с использованием '% date%' заключается в том, что она может работать или не работать на каком-либо конкретном компьютере, потому что формат может быть изменен пользователем, а также изменяться в разных регионах. Использование WMIC или VBS или Powershell для получения даты и времени в известном формате является лучшим решением при предоставлении поддержки людям, которые могут быть в любом месте в мире. – foxidrive

+0

спасибо! хорошо знать. – Beel

Смежные вопросы