kan3k1k3n
@kan3k1k3n

Как исправить странные символы вместо русских букв в путях при выполнении командного файла?

есть скрипт на python, который делает дамп моей базы данных:
spoiler
import subprocess
import os


pg_user = 'postgres'
pg_password = '4r5t2w1q'
pg_database = 'educational_practice'
output_file = r'C:\dump\backup1.1.sql'
os.environ['PGPASSWORD'] = pg_password
os.chdir(r'C:\Program Files\PostgreSQL\15\bin')

subprocess.call(['pg_dump', '-U', pg_user, '-F', 'p', '-b', '-v', '-f', output_file, pg_database])

в планировщик задач я закидываю файл .bat:
C:\Users\motor\OneDrive\Рабочий стол\pythonProject1\venv\Scripts\python.exe "C:\Users\motor\OneDrive\Рабочий стол\pythonProject1\dump1.py"
pause

когда я нажимаю в планировщике на кнопку "выполнить" - появляется командная строка и ошибка:
C:\WINDOWS\system32>C:\Users\motor\OneDrive\╨а╨░╨▒╨╛╤З╨╕╨╣ ╤Б╤В╨╛╨╗\pythonProject1\venv\Scripts\python.exe "C:\Users\motor\OneDrive\╨а╨░╨▒╨╛╤З╨╕╨╣ ╤Б╤В╨╛╨╗\pythonProject1\dump1.py"
"C:\Users\motor\OneDrive\╨а╨░╨▒╨╛╤З╨╕╨╣" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

как я понимаю, сам файл bat, который выполняет планировщик, написан некорректно.
как это исправить, чтобы скрипт запускался раз в день?
  • Вопрос задан
  • 549 просмотров
Пригласить эксперта
Ответы на вопрос 1
wisgest
@wisgest
Не ИТ-специалист
Ваш командный файл был сохранён в кодировке UTF-8. Пересохраните его в кодировке DOS/OEM (для русской Windows — это cp866) или в начале самого командного файла с помощью команды chcp включите в консоли кодовую страницу кодировки, в которой он сохранён; для UTF-8 — 65001:
chcp 65001
(но в ранних выпусках cmd для Windows, по крайней мере до XP включительно, UTF-8 в командных файлах плохо поддерживалась).

(Также можно кодовую страницу по умолчанию для консольных приложений, например, в данном случае cmd.exe, задать в реестре…)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы