Я не могу думать ни о каком кросс-платформенном способе того, что Вы хотите (или любой гарантируемый путь точка), но поскольку Вы используете GetTickCount, возможно, Вы не интересуетесь кросс-платформенным:)
я использовал бы межпроцессные взаимодействия и установил бы интенсивные процессы хорошие уровни для получения то, чего Вы требуете, но я не уверен, что это подходит для Вашей ситуации.
РЕДАКТИРОВАНИЕ: Я соглашаюсь с Bernard, который является, почему я думаю, процесс, а не поток мог бы быть более соответствующим, но это просто не могло бы удовлетворить Вашим целям.
Это полный ответ, который вы ищете:
FOR /D /R %%X IN (certain_string*) DO RD /S /Q "%%X"
где, очевидно, вам нужно заменить specific_string
на строку, начинающуюся с ваших папок с участием.
Это удаляет РЕКУРСИВНО , как вы просили (я имею в виду, что он проходит через все папки и подпапки).
Кажется, незаконченный. Если вы имели в виду «Рекурсивно спускаться по иерархии каталогов для удаления всех папок, начинающихся с определенной строки», тогда может быть достаточно следующего:
for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"
Это будет рекурсивно в дереве каталогов, найдя все папки, начинающиеся с «abc», и перебрать это list и удалив каждую папку.
Может быть, вам нужно обернуть если существует
вокруг rd
, в зависимости от порядка, в котором каталоги найдены и возвращены. В общем, повторение чего-либо и одновременное изменение этого редко бывает хорошей идеей, но иногда это работает: -)
Как насчет:
for /d %a in (certain_string*) do rd /s %a
Это будет работать из командной строки. Внутри командного файла вам нужно будет удвоить %
s, как обычно:
@echo off
for /d %%a in (certain_string*) do rd /s %%a