Когда дело доходит до командной строки Windows, я всегда путаюсь о пути, который так легко понять в терминалах Linux Terminal.Удалите все на пути, за исключением некоторых файлов в Windows CMD.
То, что я хочу сделать, я хочу, чтобы удалить все (как файлы и папки в одной команде) в пути (например, для. pub\static
путь к каталогу), за исключением файла с именем .htaccess
родственница из моего корневого каталога (C:\wwwroot\Magento2
), который открывается в командной строке Windows.
Как это сделать, я пробовал нижний цикл for
, но вместо этого он удаляет .htaccess
. Также как избежать цикла for
в целом, но выполнить работу, как я описал (относительно корневого каталога)?
for %i in (C:\wwwroot\Magento2\pub\static\*) do if not %i == .htaccess del %i
Так что я гугле немного, и пытался ниже одного, но он ничего не делает:
FOR /D %p IN ("C:\wwwroot\Magento2\pub\static\*.*") DO (IF NOT %p == .htaccess (IF EXIST %~sp\NUL (RMDIR "%p" /S /Q) ELSE (DEL /F "%p")))
Это намного проще в PowerShell , –
Также: Что произойдет, если в подкаталоге есть _only_ файл '.htaccess'? Должен ли мы удалить подкаталог или нет? –
Только .htaccess непосредственно в папке 'static' должен оставаться, остальная часть содержимого внутри' static'-папки должна исчезнуть навсегда. –