2016-12-08 1 views
0

나는 Ingres DB를 가지고 있으며 DB에서 다시 작성해야 할 경우 모든 절차 파일을 폴더에 보관합니다. eachohter (다른 것에서 하나라고 부름)와 관련된 많은 절차가 있습니다. 따라서 평균 ai가 먼저 proceudre를 실행하고 다른 것을 실행해야합니다. 지금 나는 파일 이름을 제공해야하는 박쥐 파일을 사용하고 있으며, 손으로 하나씩 그것을하기 위해 forefer를 취하고있다. 그것을하기 위해 나는이 박쥐 파일을 사용하고 있습니다.폴더에서 DB에 대해 파일을 실행하는 bat 파일

echo '' > sqlout 
more sqlout 
set /p database="Enter database:" 
if "%database%"=="" set database=1507 
CALL C:\"Program Files"\Ingres\..\..\bin\setingenvs.bat 
set directory_name=DBProcs 
:While 

set /p filename="Enter Procedure Filename:" 
echo %filename% 
sql DBServerName::%database% -udba <D:\Php_Web_Source\..\DBProcs\%filename% > sqlout 
more sqlout 
set /p another="Do you have another? (Y/N)" 
if "%another%"=="N" goto EndWhile 
goto While 
:EndWhile 

그냥 박쥐 파일을 실행하고 폴더의 모든 파일을 실행해야하지만 어떻게해야하는지 잘 모르겠습니다. for 루프와 같은 것을 생각하고 있었는데 폴더에있는 각 파일에 대해 박쥐가 존재한다고 생각했지만 도움이되는 방법을 모르는 경우

+0

안녕하세요 안드레이, 나는 너의 취미 사용에 대해 조금 궁금해. '.. \\ Program Files \ Ingres \ .. \ .. \ bin \ setingenvs.bat'는'C : \ bin \ setingenvs.bat'와 동일합니다. ! 'D : \ Php_Web_Source \ .. \ DBProcs \ % filename % '와 같은 것은'D : \ DBProcs \ % filename %'로 해석되거나 코드를 난독 화하는 방법입니까? – LotPings

+0

네, 파 트는 길기 때문에 여기서는 더 짧습니다 :) – Andrey

답변

2

디렉토리의 모든 파일을 반복 실행하려면 기본입니다. for 루프.

for %%G IN (C:\mypath\*.*) do echo %%G 

%% G는이 인스턴스의 파일 이름을 가진 경로입니다. 그런 다음 해당 변수로 모든 명령을 실행할 수 있습니다.

+0

stile은 각 파일에 대한 내 존재 배치 파일을 호출하는 방법을 이해합니다. 제게 예제를 주시겠습니까? – Andrey

+0

@Andrey, 나는 데이터베이스에 대해 아무것도 모른다. 나는 당신이 당신의 SET/P 명령어를 대체 할 것으로 생각했다. 'set/p filename = "프로 시저 파일 이름을 입력하십시오 :"' – Squashman

+0

프로 시저에 대해 신경 쓰지 않습니다. 다른 질문에있는 다른 배치 파일을 호출하고 파일 이름을 매개 변수로 전달하지 않습니다. 하지만 그냥 이해가 안되요 – Andrey

1

자주 실행해야하는 새 파일을 추가하지 않으면 다른 모든 스크립트를 호출하는 단일 sql 파일을 작성하는 것이 좋습니다. 예를 들어

: 또한 빠른 발견을하고 교체하는 등 ++ 메모장과 같은 도구를 사용하여 모든 파일의 목록을 얻고하여이 스크립트를 상당히 빨리 만들 수 있습니다

\cd D:\Php_Web_Source\..\DBProcs\ 
\read proc1.sql 
\read proc2.sql 
\read proc3.sql 

dir/b *.sql > files.txt 

하나의 디렉토리에 모든 sql 파일 목록을 제공합니다 (여러 디렉토리가 필요한 경우 명령을 조정할 수 있음). 그런 다음 당신이 필요로하는 무엇을 얻을 것

\r\n\\read 

\r\n 

을 정규식 검색을 사용하고 교체합니다.

내가 말했듯이 파일이 자주 또는 빠르고 더러운 방법으로 변경되지 않으면 빠른 방법입니다. 스쿼시 만의 대답은 정기적으로 변화하는 파일 구조에 대해 더 정확합니다.

관련 문제