Проблема, с которой вы столкнулись, связана с тем, как Windows CMD обрабатывает символы. Деякие версии Windows могут неправильно обрабатывать символы или автоматически заменять некоторые из них. Тем не менее, можно попробовать несколько решений, чтобы избежать неправильной обработки тире и дефисов:
### 1. Проверьте шрифт и кодировку
Поскольку вы упомянули, что проблема не зависит от шрифта или кодировки, тем не менее следует убедиться, что в CMD используется шрифт, который поддерживает все необходимые символы (например, Consolas или Lucida Console). Также стоит убедиться, что кодировка консоли установлена на UTF-8:
```cmd
chcp 65001
```
### 2. Используйте кавычки
При передаче путей, содержащих специальные символы, всегда оборачивайте путь в кавычки. Например:
```cmd
"C:\Users\Username\Папка-с-дефисом\путь-"
```
### 3. Проверка версии Windows
Убедитесь, что у вас установлены последние обновления Windows. Некоторые проблемы с обработкой символов могут быть устранены в обновлениях.
### 4. Запуск CMD от имени администратора
Иногда проблемы с правами могут вызывать некорректное поведение. Запустите CMD от имени администратора и проверьте, сохраняется ли проблема.
### 5. Установка альтернативной среды
Как альтернатива, вы можете использовать другие терминальные эмуляторы, такие как PowerShell или Windows Terminal, которые могут лучше обрабатывать специальные символы и поддерживать более современный контекст выполнения.
### Пример запуска скрипта
Если, например, у вас есть путь `C:\Папка с дефисом\файл-1`, вы должны вызывать скрипт так:
```cmd
python your_script.py "C:\Папка с дефисом\файл-1"
```
### 6. Отладка программы
Если приведенные выше методы не помогают, попробуйте добавить отладочную печать в вашу программу Python, чтобы понять, что именно она принимает в качестве аргумента. Убедитесь, что вы правильно обрабатываете аргументы командной строки.
Если проблема все еще сохраняется, возможно стоит посмотреть на ваши операционные системы или настройки командной строки. Создание тестового скрипта на Python также может помочь вам понять, как именно обрабатываются входные данные.