Я пытаюсь выяснить, существует ли файл в той же папке, что и пакетный файл.
Файлы в папке будут похожи на
123.pdf
124.pdf
125.pdf
126.pdf
Файлы для проверки перечислены в файле nr.txt, например
124.pdf
126.pdf
Если файл существует, файл следует скопировать в другую папку с именем nr, расположенную в той же папке, что и пакет, например% ~ dp0 \ nr \
вот что я получил до сих пор
@echo off
SET m=0
for /f %%G in ('dir *.pdf /b') do (for /f %%i in (nr.txt) do (
if %%i==%%G (
echo %%i found
::copy %%i %~dp0\nr\
) else (
SET m=1
echo %m%
)
)
if %m%==1 (
echo %%i not found
SET m=0
)
)
pause
Моя проблема в том, что SET m = 1 не устанавливает переменную.
Заранее благодарю за помощь
EDIT:
Спасибо, я все ближе.
@echo off
SETLOCAL EnableDelayedExpansion
SET m=0
for /f %%i in (nr.txt) do (for /f %%G in ('dir *.pdf /b') do (
if /I %%i==%%G (
echo %%i found
) else (
SET m=1
)
)
if !m!==1 (
echo %%i not found
SET m=0
)
)
pause
H:\Neuer Ordner (2)>check.bat
123.pdf found
123.pdf not found
126.pdf found
126.pdf not found
128.pdf not found
Проблема в том, что мне все еще говорят, что он не находит 123.pdf, но он там есть. Он нашел это однажды.
Я пытался переключить циклы for, но та же проблема.
Проблема в том, что он будет проходить через все файлы в Dir и совпадать. Это будет соответствовать, но всегда не совпадать. Любая идея, как я могу просто отобразить сообщение о поиске, если файл там?
Большое спасибо