Переименовать файлы с текущей отметкой даты (bat-файлы) - PullRequest
0 голосов
/ 13 июня 2018

У меня есть bat файл для запуска процедуры sql, которая создает 2 файла:

TEST_SCHEMA.dmp

TEST_SCHEMA.log

Затем я использовал xcopy для копирования файлов.После копирования я хочу изменить имя файла на:

TEST_SCHEMA.dmp -> TEST_CURRENT_DATE.dmp

TEST_SCHEMA.log -> TEST_CURRENT_DATE.log

где Current_Date = ГГГГММДДЧЧММ

Это то, что у меня было до сих пор:

set OWNER=myOwner
set FILE_NAME=TEST_SCHEMA
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

sqlplus %OWNER%/%OWNER%@host:1521/SID @run_test.sql %OWNER% %FILE_NAME%
xcopy "\\host\c$\abc\def\test\%FILE_NAME%.*" /C

set "_year=%MyDate:~0,4%"
set "_month=%MyDate:~4,2%"
set "_day=%MyDate:~6,2%"

ren FILE_NAME.dmp "TEST (%_year%%_month%%_day%).txt"
ren FILE_NAME.log "TEST (%_year%%_month%%_day%).txt"

pause 0

Результат должен быть таким:

TEST_201806131006.dmp

TEST_201806131006.log

Но я не знаю, как правильно использовать переименование и поставить дату в имени файла.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Использование WMIC для создания штампа DateTime:

For /F %%A In ('WMIC OS Get LocalDateTime') Do If Not "%%~xA"=="" Set "ds=%%~nA"
Ren "TEST_*.*" "TEST_%ds:~,-2%.*"
0 голосов
/ 13 июня 2018

Создать файл, включающий отметку даты.

set OWNER=myOwner
for /f %%A in ('
  powershell -nop -c "get-date -f yyyyMMdd"
') do SET "FILE_NAME=TEST_SCHEMA_%%A"
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

sqlplus %OWNER%/%OWNER%@host:1521/SID @run_test.sql %OWNER% %FILE_NAME%
xcopy "\\host\c$\abc\def\test\%FILE_NAME%.*" /C
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...