Reputation: 1
I have two files:
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
What I need is to cycle through filetest.txt, then search the files identified in filetest2.txt for the filename and output to a file the results. I am trying to identify in well over 100 bat files where each of about 100 SSIS Packages are running.
I'm doing this in Windows batch, have tried about 20 various approaches without success - any help would be greatly appreciated.
Upvotes: 0
Views: 124
Reputation: 80211
@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
This should produce a file newfile.txt
containing the required data.
If the real data in filetest.txt
contains strings that are conducive to being a filename, then
@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
may be preferred.
Upvotes: 0
Reputation: 67326
The following command search the strings contained in filetest.txt
in each one of the files contained in filetest2.txt
:
findstr /G:filetest.txt /F:filetest2.txt
EDIT: Example added
I first created four text files with the help text for set
, for
, cmd
e if
commands, then I executed the example below (the language of my OS is Spanish):
C:> type wordList.txt
retardada
entorno
C:> type fileList.txt
set.txt
for.txt
cmd.txt
if.txt
C:> findstr /G:wordlist.txt /F:filelist.txt
set.txt:Muestra, establece o quita las variables de entorno de cmd.exe.
set.txt: variable Especifica el nombre de la variable de entorno.
set.txt:Escriba SET sin parámetros para ver las variables de entorno actuales.
set.txt:de la variable en el entorno actual.
set.txt:que no sea numérica, se tratará como variable de entorno cuyo valor se
set.txt:que no está definida en el entorno actual, se usará el valor cero. Esto
set.txt:permite hacer operaciones aritméticas con los valores de variables de en
torno
set.txt:de asignación requiere un nombre de variable de entorno a la izquierda d
el
set.txt:La sustitución de variables de entorno ha sido mejorada así:
set.txt:expandirá la variable de entorno PATH, sustituyendo cada repetición de
set.txt:expandirá la variable de entorno PATH, y usará solo los 5 caracteres
set.txt:de entorno agregado al desplazamiento o longitud especificados.
set.txt:retardada. Esta compatibilidad está siempre deshabilitada de forma
set.txt:La expansión de la variable de entorno es útil para tratar con las
set.txt:La expansión de la variable de entorno retardada permite usar un
set.txt:tiempo de ejecución. Si la expansión de la variable retardada está
set.txt:dinámicas de entorno que se pueden expandir pero que no se
for.txt: enumerará los nombres de variable de entorno en el entorno actual.
for.txt: de entorno de PATH y expande %I al nombre totalmente
for.txt: de la variable de entorno no es definido o no se
for.txt: entorno de PATH para %I y se expande a la letra de
cmd.txt:/V:ON Habilita la extensión de variables de entorno retardada con !
cmd.txt:/V:OFF Deshabilita la extensión de variables de entorno retardada.
cmd.txt:La expansión de variables de entorno retardada NO está habilitada de for
ma
cmd.txt:entorno retardada para una invocación particular de CMD.EXE con los
cmd.txt:retardada para todas las invocaciones de CMD.EXE en una sesión de inicio
de
cmd.txt:Si la expansión de variables de entorno retardada está habilitada, se pu
ede
cmd.txt:entorno en tiempo de ejecución.
if.txt:nombre de variable de entorno y vuelve como verdadero si se define la
if.txt:variable de entorno.
if.txt:de ERRORLEVEL, siempre y cuando no exista ya una variable de entorno con
el
if.txt:variable de entorno con el nombre CMDCMDLINE, en cuyo caso obtendrá su va
lor.
if.txt:actual CMDEXTVERSION, siempre y cuando no exista ya una variable de entor
no
The output include the name of each file the search pattern was found in; if /N switch is added, the output also include the number of each line where the search pattern was found in.
Upvotes: 1