
У меня есть скрипт командной строки, который удаляет все имена папок, не перечисленные в текстовом файле. Я бы хотел, чтобы скрипт удалял ТОЛЬКО папки в текстовом файле. Я не уверен, в чем проблема.
Мой cmd:
for /d %%a in ("C:\Users\Administrator\Desktop\Somedir\*") do findstr /i /x /c:"%%~nxa" Cleanup.txt || rd /s /q %%a
и мой текстовый файл содержит короткие имена папок, например:
am
ar
bg
Кто-нибудь может помочь?
решение1
В командной строке:
cd "C:\Where\Your\Text\File\Is"
for /f %A in ("Cleanup.txt") do (if exist "C:\Users\Administrator\Desktop\Somedir\%A" rd /s /q "C:\Users\Administrator\Desktop\Somedir\%A")
В партии:
@echo off
set "dir=C:\Users\Administrator\Desktop\Somedir"
set "txt=C:\Where\Your\File\Is\Located\Cleanup.txt"
setlocal enabledelayedexpansion
for /f %%A in (%txt%) do (
set "del=%%A"
if exist "%dir%\!del!" rd /s /q "%dir%\!del!"
)
Не забудьте сменить каталог в командной строке, если вы не хотите ничего добавлять в параметры цикла. Я предпочитаю использовать пакет и переменные, поэтому я включил это.