0

私は2つのファイルを持っています:

filetest.txt
============
SSISPACKAGE1.dtsx 
SSISPACKAGE2.dtsx 
SSISPACKAGE3.dtsx 
SSISPACKAGE4.dtsx 
SSISPACKAGE5.dtsx 
SSISPACKAGE6.dtsx 
SSISPACKAGE7.dtsx 
SSISPACKAGE8.dtsx 

filetest2.txt
=============
\\central_test_server\SSIS_Packages\Daily.bat
\\central_test_server\SSIS_Packages\Weekly.bat
\\central_test_server\SSIS_Packages\Monthly.bat
\\central_test_server\SSIS_Packages\Quarterly.bat
\\central_test_server\SSIS_Packages\SemiAnnually.bat
\\central_test_server\SSIS_Packages\Annually.bat

必要なのは、filetest.txt を循環し、filetest2.txt で識別されたファイルのファイル名を検索し、結果をファイルに出力することです。約 100 の SSIS パッケージのそれぞれが実行されている 100 をはるかに超えるバット ファイルを特定しようとしています。

私はこれを Windows バッチで行っていますが、約 20 のさまざまなアプローチを試みましたが成功しませんでした。

4

2 に答える 2

0
@ECHO OFF
SETLOCAL
(
 FOR /f "delims=" %%a IN (filetest.txt) DO (
  ECHO ===================== looking FOR %%a =====================
  FOR /f "delims=" %%s IN (filetest2.txt) DO (
   FINDSTR /m /i /l /c:"%%a" "%%s"
  ) 
 )
)>newfile.txt
GOTO :EOF

これによりnewfile.txt、必要なデータを含むファイルが生成されます。

の実際のデータにfiletest.txtファイル名になりやすい文字列が含まれている場合、

@ECHO OFF
SETLOCAL
FOR /f "delims=" %%a IN (filetest.txt) DO (
 FOR /f "delims=" %%s IN (filetest2.txt) DO (
  FINDSTR /m /i /l /c:"%%a" "%%s"
 ) 
)>"%%a.new"
GOTO :EOF

が好ましい場合があります。

于 2013-11-07T14:05:59.390 に答える