2011-04-05 1 views
0

리눅스가 의도 한이 코드 블록은 무엇이며, 동일한 일을 배치 파일 형식으로 코딩하는 방법은 무엇입니까?리눅스 코드를 일괄 파일 형식으로 변환

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 
+0

관리에 Cygwin에서 선호? Windows cmd.exe 배치 파일을 의미합니까? 그렇다면 어떤 Windows 버전입니까? powershell도 잘 보아라. – sehe

답변

1

이 코드는 (1) 먼저 데이터베이스에 대한 모든 활성 연결을 나열하여 $DB 변수에 지정된 DB2 데이터베이스를 다시 시도; (2) 모든 연결을 닫는다; (3) 데이터베이스 지우기 (4) 데이터베이스 재 작성 (5) 모든 로그 지우기 (6) 사용자 $user을 데이터베이스에 연결. 창에서

첫 번째 접근하지만,이

: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에서 표준 명령이 아닙니다. 일부 구현 및 일부 대안이 존재하며, 자신을 연구하십시오 (예를 들어 여기에서). 그러면 찾을 수 있습니다.

+0

그것은 놀랍다. 리눅스와 MS DOS 배치 코딩에있어서 매우 새로운 것이다. 나는 인턴쉽을하고 있는데 감독관이 약 150 줄의 변환을 해달라고 부탁했습니다 ... 전에 리눅스 나 배치 파일 형식으로 코딩 한 적이 없지만 순서를 따라갈 수 있고 무엇을해야하는지 이해할 수 있습니다. 구글의 도움으로 코드를 수정하십시오. 당신의 설명이 정말로 합리적이었습니다. 비록 많은 리눅스 코드가 메서드와 일괄 처리 함수를 사용했기 때문에 많은 개념이 있지만 개념을 잡을 수는 없었습니다. 당신이이 하나에 나를 도울 수 있다면 기뻐하십시오. 나는 충분히 감사 할 수 없다 .... – Selase

0

나는 cygwin bash (www.cygwin.com)를 사용하고 스크립트를 보관할 것입니다.

이뿐만 아니라 Windows 용 MSYS, 그리고 아마도 다른 최소한의 bash는 구현,하지만 난 개인적으로 배치 파일이 무엇을 설명하기 위해 창

관련 문제