2013-11-06 2 views
0

У меня есть два файла:Вложенные для цикла, поиск файлов

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 файлов bat, в которых запущено около 100 пакетов SSIS.

Я делаю это в партии Windows, пробовал около 20 различных подходов без успеха - любая помощь будет принята с благодарностью.

+0

Что вы имеете в виду под идентификацией? Не удается найти шаблон ссылки между файлами. – Endoro

ответ

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 

может быть предпочтительным.

+0

Это прекрасно, спасибо вы так много - это очень ценится. – user2961510

1

Следующая Поиск команды строки, содержащиеся в filetest.txt в каждом из файлов, содержащихся в filetest2.txt:

findstr /G:filetest.txt /F:filetest2.txt 

EDIT: Пример добавил

Я первый созданный четыре текстовых файлов с help text для set, for, cmd e if команд, затем я выполнил приведенный ниже пример (язык моей ОС - испанский):

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 

Результат включает имя каждого файла, в котором найден шаблон поиска; если/N переключатель добавляется, выход также включать в себя число каждой строки, где шаблон поиска был найден в.

+0

Шаблон поиска находится в файле filetest.txt, файлы для поиска находятся в файле filetest2.txt. То, что было опубликовано, было первым, что я сделал, и действительно получил результаты, но не мог предположить, в каких файлах был найден шаблон поиска, только чтобы он был найден. – user2961510

+0

'findstr' output _do_ показать имена файлов, в которых были найдены шаблоны поиска! См. Редактирование в моем ответе выше. Пожалуйста, объясните свои проблемы более ясным образом и не используйте путаные термины (например, «идентифицируйте», что я до сих пор не знаю, что означает). – Aacini

+0

Используйте переключатель '/ M', Luke ... – Magoo

Смежные вопросы