Получить подкаталоги с определенным префиксом - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю простой пакетный скрипт для удаления всех пользовательских настроек конкретного приложения, и все еще не могу выполнить последний шаг, где я пытаюсь получить все подпапки с определенным префиксом ...

Это то, что у меня сейчас есть:

@echo off
chcp 1250

SET appUserConfigDirectory=\AppData\Local\CompanyName
SET appConfigFolderPrefix=AppName.exe_Url

:: get parent folder of user folders
for %%d in (%USERPROFILE%) do SET userprofilesFolder=%%~dpd

SETLOCAL ENABLEDELAYEDEXPANSION
:: going through all user folders
for /F "delims=" %%d in ('dir %userprofilesFolder% /A:D-R-H-S /b') do (
    :: set full name of CompanyName folder in user AppData
    SET appConfigParentFolder=%userprofilesFolder%%%d%appUserConfigDirectory%
    IF EXIST !appConfigParentFolder! (
        :: There is a problem with dir command, it's says File not found even if subfolder with this prefix exists and print all subFolder no metter it's name...
        for /F "delims=" %%i in ('dir !appConfigParentFolder! /A:D /b %appConfigFolderPrefix%*') do (
        echo %%i)))

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Я найду способ, как это сделать.Правильная команда dir с префиксом должна быть:

dir !appConfigParentFolder!\%appConfigFolderPrefix%* /A:D /b

Таким образом, полная версия этого примера:

@echo off
chcp 1250

SET appUserConfigDirectory=\AppData\Local\CompanyName
SET appConfigFolderPrefix=AppName.exe_Url

for %%d in (%USERPROFILE%) do SET userprofilesFolder=%%~dpd

SETLOCAL ENABLEDELAYEDEXPANSION

for /F "delims=" %%d in ('dir %userprofilesFolder% /A:D-R-H-S /b') do (
    SET appConfigParentFolder=%userprofilesFolder%%%d%appUserConfigDirectory%
    IF EXIST !appConfigParentFolder! (
        for /F "delims=" %%i in ('dir !appConfigParentFolder!\%appConfigFolderPrefix%* /A:D /b') do echo %%i
    )
)
0 голосов
/ 04 апреля 2019

Пожалуйста, попробуйте что-то вроде этого:

forfiles /S /M !appConfigParentFolder! /C "cmd /c if @isdir==TRUE rmdir @path"

Удаляет все подкаталоги, что равно !appConfigParentFolder!.

...