Войти

Показать полную графическую версию : [решено] Удаление папки с иероглифами в названии


Sisin
25-09-2017, 13:45
Как удалить папку имеющую в названии Кирилл??

RD /s /q Кирилл
Не срабатывает.

Iska
25-09-2017, 14:06
Попробуйте обрамить кавычками имя каталога:
https://i.imgur.com/zx3kgXK.png

mwz
25-09-2017, 14:15
Sisin, если у вас стоит сторонний диспетчер файлов типа FAR или Total Commander — отключить в нём показ длинных имён файлов и удалить по короткому имени (которое ничем не будет напоминать длинное).

Если не стоит — воспользуйтесь штатными средствами командного процессора Windows, т.е. cmd.exe, запустив его с правами администратора. Войдите в папку, в которой лежит ваш каталог со странным именем, и выполните команду
dir /AD /X
В одной из строк результата будет видно в конце "странное" имя (кстати, вполне возможно что из-за различия кодировок отличающееся от того, что вы видите в Windows), а перед ним — короткое их 8 символов. Здесь же сразу удаляете папку по короткому имени.

Пример на скриншоте, по короткому имени удаляется каталог с длинным именем Пробный каталог, лежащий в каталоге C:\TEMP.

http://mwz-ru.homeserver.com/tests/dirlong.gif

Sisin
25-09-2017, 14:26
Попробуйте обрамить кавычками имя каталога: »
Мне надо через bat, а в нем в кавычках выдает синтаксическую ошибку или не удается найти файл.

Iska
25-09-2017, 14:29
mwz, в данном случае нет такой необходимости. Ни для Far Manager'а, ни для Total Commander'а, ни для самого интерпретатора команд, ни для Проводника.

а в нем в кавычках выдает синтаксическую ошибку. »
Sisin, поскольку в имени наличествуют символы, которые отсутствуют в кодовой странице OEM/866, пакетный файл Вам придётся сохранять в кодировке ANSI/1251, а для удаления воспользоваться временным переключением кодовой страницы:
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251
rd "Кирилл"
>nul chcp 866

endlocal
exit /b 0

Sisin
25-09-2017, 14:54
С ключами /s /q все сработало, благодарю.

Блин, а названием вроде ������ не срабатывает.

Iska
25-09-2017, 15:41
Блин, а названием вроде ������ не срабатывает. »
Естественно, коллега, ведь указанные символы отсутствуют и в кодовой странице ANSI/1251 — это юникод.

В данном случае сохраняете пакетный файл в UTF-8/65001 без BOM:
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 65001
rd "������"
>nul chcp 866

endlocal
exit /b 0

Но тут могут возникать проблемы с другими частями пакетного файла.

Sisin
25-09-2017, 15:55
т.е. в одном bat эти два никак не объединить??

Iska
25-09-2017, 16:01
Sisin, ну, почему же, символы «РљРёСЂРёР»Р»» входят в кодовую страницу UTF-8/65001 и потому можно сохранить пакетный файл именно в ней:
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 65001
rd "Кирилл"
rd "������"
>nul chcp 866

endlocal
exit /b 0

https://i.imgur.com/48Vjckp.png




© OSzone.net 2001-2012