Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Цикл в Цикле (http://forum.oszone.net/showthread.php?t=215078)

deamon7 07-09-2011 23:26 1748409

Цикл в Цикле
 
Cуть проблемы в следующем.
Организован цикл, который просматривается файл и при нахождении нужного значения организовывается второй цикл,
у которого в значение SKIP нужно передать значение счетчика(переменная n) который считается в первом цикле.

Код:

@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set /a n = 0
for /f "delims=" %%a in (файл) do (
set /a n = n + 1
if %%a==значение (
for /f "skip=!n! delims=" %%b in (файл) do (...)
)
)
.....


Foreigner 08-09-2011 06:44 1748502

deamon7,
Выноси второй цикл наружу:
Код:

@echo off
SETLOCAL

for /f "delims=" %%a in (файл) do call:label "%%a"
........
goto:eof

:label
set /a n+=1
if %1=="значение" (

    for /f "skip=%n% delims=" %%b in (файл) do (...)

)


shustrik86 13-04-2023 20:30 3007378

Доброго дня

for /d %%A IN (C:\Users\*) DO for /d %%B IN (%%A\AppData\Local\Mozilla\Firefox\Profiles\*) del /S /Q /F %%B\cache2\*.*

как разрулить такую задачку?

Serguei Kouzmine 14-04-2023 04:52 3007404

чтоб получить совет покажите как сами пробовали решить

DJ Mogarych 14-04-2023 09:26 3007417

Powershell:
Код:

del "$env:SystemDrive\Users\*\AppData\Local\Mozilla\Firefox\Profiles\*\cache2\*" -Recurse -Force -WhatIf
Уберите -WhatIf, чтобы реально удаляло.

megaloman 15-04-2023 09:04 3007482

shustrik86, Как минимум, во втором For пропустили Do
Неплохо бы пути брать в кавычки.
Не понимаю стремления записать всё в одну строку - код нечитаемый и ошибок не видно
Вариант
Код:

@Echo Off
        for /d %%A IN ("C:\Users\*") DO (
                for /d %%B IN ("%%A\AppData\Local\Mozilla\Firefox\Profiles\*") Do (
                        Pushd "%%B\cache2" && (2>nul echo Rd /Q /S "%%B\cache2" &Popd)
                )
        )
Exit /B

Для реальной очистки echo удалите


Время: 18:57.

Время: 18:57.
© OSzone.net 2001-