Преобразование кодов Linux в формат пакетного файла - PullRequest
0 голосов
/ 05 апреля 2011

Для чего предназначен этот блок кода из linux и как мне сделать то же самое в формате пакетного файла, чтобы сделать то же самое?

create_db() {

  echo -e "\nRe-creating database [$DB] . . .\n"
  apps_id=`db2 list applications | grep $DB | cut -c25-30`
  for i in $apps_id
  do
    db2 "force applications ($i)"
  done
  sleep 3

  db2 drop db $DB
  db2 create database $DB

  cd $HOME_DIR
  cd ../Db/bin
  [ ! -d logs ] && (mkdir logs)
  rm -f logs/*

  db2 connect to $DB user $USER using $PASS

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Этот код пытается воссоздать базу данных 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), и вы их найдете.

0 голосов
/ 05 апреля 2011

Я бы использовал cygwin bash (www.cygwin.com) и сохранил сценарий.

Существует также msys для окон и, возможно, другая минимальная реализация bash, но я лично предпочитаю cygwin для windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...