2014-11-25 2 views
0

Извините, но мой английский очень беден! У меня есть две папки с несколькими файлами, как показано ниже:Пакет, чтобы показать мне файлы с * _ ???? *. * В двух папках

D:\Folder1\ 
START_0101.dat.. 
START_0105.dat.. 
START_0109.dat.. 
.. 
.. 
.. 
START_0250.dat. 

D:\Folder2\ 
rms_20141124_0100.mdb.. 
rms_20141124_0108.mdb.. 
rms_20141124_0109.mdb.. 
.. 
.. 
.. 
rms_20141124_0250.mdb. 

Мне нужен пакетный скрипт, чтобы показать, что файлы * 109.mdb и * 250.mdb существует в Folder2. Если существует, то отобразите сообщение.

WINDOWS 2000


я могу иметь несколько файлов в folder1, с этим рисунком "* _ ????. Даты". D:. \ Folder1 \ START_0101.dat .. START_0105.dat .. START_0109.dat .. .. .. .. * _ ???? Дат

я могу иметь несколько файлы в папке2, с этим шаблоном «* _ ????. mdb». D:. \ Folder2 \ rms_20141124_0100.mdb .. rms_20141124_0108.mdb .. rms_20141124_0109.mdb .. .. .. .. * _ ???? MDB

мне нужно что-то вроде это:

если существует "d:. \ folder1 * _ ???? " набор "найдено = 1" , если существует "d:. \ folder2 * _ ????" набор «найдено = 2 "

если"% 1% "EQU"% 2% "( echo file% fou nd% ) else ( echo file не существует )

Большое спасибо!

+1

Так что вы написали, что до сих пор не работает для вас? – Lee

+0

Друг Ли, я должен показать файлы, которые существуют в обеих папках. Если в папке 1 существует файл START_0109.dat и в папке2 существует rms_20141124_0109.mdb, тогда существует файл 109. Но у меня может быть несколько файлов в обеих папках. Мне нужно сообщение только в том случае, если в файле есть файл «* _ ????. *». Если число «* _ ????. *» Равно в обеих папках, то файл существует, иначе файл не существует. Эти файлы могут иметь любое число ????, но если они существуют, то отображается сообщение. Извините за мой английский! Большое спасибо! –

+0

Пожалуйста, отредактируйте свой вопрос, чтобы объяснить ** точно **, что вам нужно, включая эту новую информацию. Показать любой код, который у вас уже есть или хотите использовать, и сказать, почему он не работает – sjoy

ответ

1
@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set "folder1=d:\folder1" 
    set "folder2=d:\folder2" 

    for %%a in ("%folder1%\*.dat") do (
     for /f "tokens=2 delims=_" %%b in ("%%~na") do (
      if exist "%folder2%\*_%%b.mdb" (
       echo %%b exists 
      ) else (
       echo %%b missing 
      ) 
     ) 
    ) 

Для каждого .dat файла в папке 1, получить ссылку на файл в for заменяемого параметра %%a, от него, получить имя файла (%%~na), разметить его с помощью подчеркивания в качестве разделителя и получить второй маркер , Покажите, существует ли файл .mdb в папке 2 с тем же токеном.

отредактирован адаптироваться к нескольким подпапок в folder2

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set "folder1=d:\folder1" 
    set "folder2=d:\folder2" 

    for %%a in ("%folder1%\*.dat") do (
     for /f "tokens=2 delims=_" %%b in ("%%~na") do (

      set "match=" 
      for /r "%folder2%" %%c in ("*_%%b.mdb") do if not defined match (
       set "match=1" 
       echo %%~nxa located as %%c 
      ) 

      if not defined match (
       echo %%b missing 
      ) 
     ) 
    ) 
+0

Друг «MC ND», мне нужно показать файлы, которые существуют в обеих папках. Если в папке 1 существует файл START_0109.dat и в папке2 существует rms_20141124_0109.mdb, тогда существует файл 109. Но у меня может быть несколько файлов в обеих папках. Мне нужно сообщение только в том случае, если в файле есть файл «* _ ????. *». Если число «* _ ????. *» Равно в обеих папках, то файл существует, иначе файл не существует. Большое спасибо! –

+0

Я хотел бы поблагодарить г-на MC ND! Я очень благодарен за быстрый ответ. Этот код работал просто отлично! Большое спасибо мистеру MC ND! –

+0

Уважаемый MC ND, снова нужна ваша помощь. В d: \ folder2 \ у меня есть много каталогов из "d: \ folder2 \ rja", "d: \ folder2 \ rjb" до "d: \ folder2 \ rjz". Я должен выяснить, в каком каталоге находится файл «* _ %% b.dat». Пример: для/r INICIO _ %% b.dat in (% folder3%) сделать эхо-файл INICIO _ %% b.dat в% folder3% \ ??? ** файл INICIO_0104.dat находится в d: \ folder2 \ rjj ** –