добавить дату в osql, сделав резервную копию с партией - PullRequest
0 голосов
/ 30 сентября 2011

спасибо за этот форум, и я рад, что вокруг так много добровольцев.

Я не знаком с партией, так что, возможно, кто-то будет так любезен, чтобы просветить меня ответом.Будьте очень благодарны.

Я пытаюсь сделать резервную копию многих sql db с помощью osql, а затем переименовать их с добавленной датой (и временем) (.bak в .dat тоже необязательно) хочу иметь весь код в одном пакете, чтобысмог бы запланировать это

Нашел способ сделать резервную копию sql db с помощью osql, и все работает нормально.Также нашел способ переименовать файл в пакетном коде, и он тоже отлично работает.

Но когда я пытаюсь соединить два из них вместе, он создает резервные копии файлов, но без переименования.Я застрял и, похоже, не могу найти выход из этой дыры.Может ли кто-нибудь помочь мне, пожалуйста, мои глаза не могут видеть над этим препятствием.

:: BAT file

echo off

osql -U** -P** -Sserver\SQLEXPRESS2005 -ddb -u -w250 -n -l 30 -iback.txt -ooutput.txt


FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B
SET DATE=%DATE:/=%
FOR /F "TOKENS=*" %%A IN ('TIME/T') DO SET TIME=%%A
SET TIME=%TIME::=%
set TODAY=%DATE%%TIME%
echo %TODAY%

rename "C:\back\TEST.bak" "TEST%TODAY%.dat"

@echo on

Заранее спасибо

1 Ответ

0 голосов
/ 22 марта 2012

% DATE% и% TIME% являются системными переменными среды и не должны сбрасываться.Вы должны использовать разные переменные.

Мне нравится такой подход:

:: BAT file

echo off

osql -U** -P** -Sserver\SQLEXPRESS2005 -ddb -u -w250 -n -l 30 -iback.txt -ooutput.txt


FOR /f "tokens=2,3,4 delims=/ " %%a in ('echo %DATE%') do (
    set "Month=%%a"
    set "Day=%%b"
    set "Year=%%c"
    )
FOR /f "tokens=1,2,3,4 delims=:." %%a in ('echo %TIME%') do (
    set "HOUR=%%a"
    set "MINUTE=%%b"
    set "SECOND=%%c"
    set "HUNDREDTHS=%%d"
    )   

SET Today=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%%HUNDREDTHS%
echo %TODAY%

rename "C:\back\TEST.bak" "TEST%TODAY%.dat"

@echo on
...