Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление папки с иероглифами в названии (http://forum.oszone.net/showthread.php?t=330043)

Sisin 25-09-2017 13:45 2766770

Удаление папки с иероглифами в названии
 
Как удалить папку имеющую в названии Кирилл??

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

Iska 25-09-2017 14:06 2766780

Попробуйте обрамить кавычками имя каталога:
Скрытый текст

mwz 25-09-2017 14:15 2766784

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

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

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


Sisin 25-09-2017 14:26 2766787

Цитата:

Цитата Iska
Попробуйте обрамить кавычками имя каталога: »

Мне надо через bat, а в нем в кавычках выдает синтаксическую ошибку или не удается найти файл.

Iska 25-09-2017 14:29 2766788

mwz, в данном случае нет такой необходимости. Ни для Far Manager'а, ни для Total Commander'а, ни для самого интерпретатора команд, ни для Проводника.

Цитата:

Цитата Sisin
а в нем в кавычках выдает синтаксическую ошибку. »

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 2766797

С ключами /s /q все сработало, благодарю.

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

Iska 25-09-2017 15:41 2766806

Цитата:

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

Естественно, коллега, ведь указанные символы отсутствуют и в кодовой странице 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 2766810

т.е. в одном bat эти два никак не объединить??

Iska 25-09-2017 16:01 2766811

Sisin, ну, почему же, символы «РљРёСЂРёР»Р»» входят в кодовую страницу UTF-8/65001 и потому можно сохранить пакетный файл именно в ней:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

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

endlocal
exit /b 0

Скрытый текст


Время: 18:00.

Время: 18:00.
© OSzone.net 2001-