Войти

Показать полную графическую версию : cmd и кириллица


ts1000win
04-10-2016, 02:01
@echo off
@echo # text1>> C:\Documents and Settings\computer\Рабочий стол\Data\1.txt
@echo # text2>> C:\1.txt
В "C:\1.txt" добавляет строку в конец файла. В "C:\Documents and Settings\computer\Рабочий стол\Data\1.txt" не добавляет ничего. Видимо проблема в кириллических символах пути до 1.txt. Как исправить?

ShaddyR
04-10-2016, 02:10
вписать так, как ты привел в сообщении - в кавычках.

Iska
04-10-2016, 02:14
В "C:\Documents and Settings\computer\Рабочий стол\Data\1.txt" не добавляет ничего. Видимо проблема в кириллических символах пути до 1.txt. »
Если Вы сохранили код пакетного файла в кодировке OEM/866 — то не проблема. Я же вижу проблему в пробельных символах в пути:
>>"C:\Documents and Settings\computer\Рабочий стол\Data\1.txt" echo # text1

ShaddyR
04-10-2016, 02:17
не успел дописать насчет кодировки, все верно.

ts1000win
08-10-2016, 21:01
Кодировка ANSI. Обязательно OEM/866? В notepad+ не нашел такой кодировки.
Проблема именно в кириллице, ковычки не помогают.
Еще
@echo off
@echo # text 1>> C:\Documents and Settings\computer\Рабочий стол\Data\1.txt
передает
# text
а
@echo "text 1">> C:\Documents and Settings\computer\Рабочий стол\Data\1.txt
передает
"text 1"
Как передать
text 1
?

Iska
08-10-2016, 21:20
Кодировка ANSI. Обязательно OEM/866? »
В абсолютном большинстве случаев — да.

В notepad+ не нашел такой кодировки. »
Ищите лучше:
http://i.imgur.com/n1LXLwG.png

Проблема именно в кириллице, ковычки не помогают. »
Проблема и там, и там.

Еще… »
Повторяю ещё раз пример выше:
>>"C:\Documents and Settings\computer\Рабочий стол\Data\1.txt" echo # text 1
Проблема в том, что «1» в Вашем коде:
@echo # text 1>> C:\Documents and Settings\computer\Рабочий стол\Data\1.txt »
относится не к echo, а к >>, и воспринимается как номер потока, в данном конкретном случае — стандартного потока вывода, stdout.

megaloman
09-10-2016, 14:54
ts1000win, Если использовать обычный notepad.exe и сохранять батник в 1251-кодировке, то
chcp 1251 >nul
>>"C:\Documents and Settings\computer\Рабочий стол\Data\1.txt" echo # text 1
Или, если очень хочется и не напрягает пробел в конце строки в файле после text 1
chcp 1251 >nul
@echo # text 1 >> "C:\Documents and Settings\computer\Рабочий стол\Data\1.txt"


То есть с пробелом перед >>

x0r
09-10-2016, 15:22
с выводом из консоли в файл кириллицы на ОС W7+, КМК лучше сразу в UTF-8 делать и все.
@chcp 65001

alpap
09-10-2016, 17:47
выводом из консоли в файл »
а можно это увидеть примером полной строкой или скриншотом?

x0r
09-10-2016, 21:10
Выше же все нописали, я просто добавил мыслю.
Вот у мну, нопример, батник создает плейлист из папок(папки по датам, внутри там мелкие файлы) куда качаются ролики
@echo off
rem сменить кодировку вывода на UTF-8 чтоб понимали кириллицу плееры MPC-HC и др.
@chcp 65001
dir /b /s /O:D *.flv *.mp4 > Rolics-LIST.m3u

Iska
09-10-2016, 21:32
Коллеги, не забивайте пока автору голову теми самыми отдельными случаями. Пусть сначала привыкнет к мысли, что в абсолютном большинстве случаев кодировка пакетного файла должна быть OEM/866.

x0r
09-10-2016, 21:40
так-то, да...




© OSzone.net 2001-2012