2013-09-16 1 views
-2

Я пытаюсь удалить все элементы NOT .aspx, но я не был уверен, как это сделать. Прямо сейчас я просто переживаю все скак удалить все файлы НЕ флаг в командной строке Windows

del /F *.html 
del /F *.csproj 
del /F *.ico 

т.д.

Есть более простая команда, чтобы просто сказать: УДАЛИТЬ ВСЕ в КАТАЛОГЕ НЕ папки или имеет расширение .aspx

I возможно, не нашли решение в Интернете, которое соответствует моему вопросу. Я не знаю, если DEL принял Regex быть как /^.*(^\.aspx)$ или что-то говорит

Баш файл:

chdir C:\Users\william.francis\Desktop\Deploy\tmp 
for /f "delims=ÿ" %a in ('dir /b /a-d ^| find /v ".aspx"') do del /s /q /f %a 
chdir .. 

Edit: хотел бы повод, как к downvotes, чтобы я мог исправить ее. Я считаю, что этот вопрос достаточно важен, чтобы его не наказывали. пожимают плечами

ответ

3

Вы можете сделать это следующим образом:

for /f "delims=ÿ" %a in ('dir /b /ad ^| find /v ".aspx"') do rd /s /q %a 
for /f "delims=ÿ" %a in ('dir /b /a-d ^| find /v ".aspx"') do del /s /q /f %a 

Пожалуйста, запустите его на тестовый каталог первым.

Другая форма:

for /f "delims=ÿ" %a in ('dir /b /a-d') do if not "%~xa"==".aspx" del /q %a 

В пакетном файле:

@echo off 
for /f "delims=ÿ" %%a in ('dir /b /a-d ^| find /v ".aspx"') do del /s /q /f %%a 

Или

@echo off 
for /f "delims=ÿ" %%a in ('dir /b /a-d') do if not "%%~xa"==".aspx" del /q %%a 

сохранить его в файл, как file.bat или file.cmd затем запустить x:\path\to\file.bat или x:\path\to\file.cmd.

+0

Я не думаю, что первый из них разрешил бы это, поскольку это удаление каталогов. Мне не нужно это делать, ни искать эти каталоги ... просто CUR_DIR. С учетом сказанного, второе заявление, которое вы, похоже, выполнили. существует 5 файлов, которые должны быть удалены. Те 5 найдены, и они были возвращены: Удаленный файл - foo/bar.config и т. Д. – Fallenreaper

+0

при установке его в сценарий bash, хотя это, похоже, не так. И.Е. chdir foo [ваша команда] chdir .. – Fallenreaper

+1

@Fallenreaper Это команда cmd.exe. Вы можете скомпилировать их в файле, который называется пакетным файлом. Пакетные файлы отличаются от сценариев bash или shell. – konsolebox