Войти

Показать полную графическую версию : [решено] Вложенный FOR


Fresh96
31-03-2016, 06:58
Здравствуйте. Подскажите по следующему коду:

setlocal enableextensions enabledelayedexpansion

set nameFolder=G:\Hegenscheidt\Documentation\Results
set Tmp1=tempfolder.tmp

::Получаем список папок в папке %nameFolder%
del %Tmp1% >nul
for /F "delims=" %%A in ('dir "%nameFolder%" /b /a:d') do (
Echo %%A>>%Tmp1%
)

for /F "delims=" %%B in (%Tmp1%) do (
for /R %nameFolder%\%%~B %%I In (*.pdf) Do If %%~zI LSS 3072 (
Del /F /Q "%%~I"
)
)
pause

Получаю имя папки из файла %Tmp1% в %%B. Затем, нужно подставить имя данной папки в путь для следующего цикла FOR, но ...
в строке for /R %nameFolder%\%%~B ... %%~B - не раскрывается в значение и соответственно путь поиска файлов неверный. Если прописать путь "жёстко", то всё работает.
Подскажите, пожалуйста, как исправить.

Petya V4sechkin
31-03-2016, 08:33
Fresh96, как-то так:
@echo off
set nameFolder=G:\Hegenscheidt\Documentation\Results

for /F "delims=" %%A in ('dir "%nameFolder%" /B /AD') do (
for /F "delims=" %%I in ('dir "%nameFolder%\%%~A\*.pdf" /B /S /A-D') do (
if %%~zI LSS 3072 del /F /Q "%%~I"
)
)

P. S. Можно вообще упростить до одного цикла, если PDF-файлы в самой корневой папке %nameFolder% не критичны.




© OSzone.net 2001-2012