Этот код пытается воссоздать базу данных DB2, указанную в переменной $DB
, путем (1) сначала перечисления всех активных соединений с базой данных; (2) закрытие всех этих соединений; (3) стирание базы данных (4) воссоздание базы данных (5) стирание всех журналов (6) подключения пользователя $user
к базе данных.
Первый подход в Windows будет похож на этот
:create_db
setlocal enabledelayedexpansion
ECHO Re-creating database %DB%
FOR /F "tokens=3" %%A IN ('DB2 LIST APPLICATIONS FOR DATABASE %DB%') DO (
SET APPHANDLE=%%A
if .!ID!==. (SET ID=!APPHANDLE!) ELSE (SET ID=!ID!,!APPHANDLE!)
)
DB2 FORCE APPLICATIONS(!ID!)
SLEEP 3
DB2 DROP DB %DB%
DB2 CREATE DATABASE %DB%
cd %HOMEPATH%
cd ..\DB\BIN
rd /S /Q LOGS
md LOGS
db2 connect to %DB% user %USER% using %PASS%
endlocal
goto :eof
Впрочем, некоторые предостережения.
GREP и CUT не являются стандартными командами в Windows. Я заново реализовал код с немного другой стратегией. Проверьте внимательно.
SLEEP не является стандартной командой в Windows. Существуют некоторые реализации и некоторые альтернативы, изучите себя (например, в SO), и вы их найдете.