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

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

ts1000win 04-10-2016 02:01 2674799

cmd и кириллица
 
Код:

@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 2674801

вписать так, как ты привел в сообщении - в кавычках.

Iska 04-10-2016 02:14 2674802

Цитата:

Цитата ts1000win
В "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 2674803

не успел дописать насчет кодировки, все верно.

ts1000win 08-10-2016 21:01 2676188

Кодировка 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 2676194

Цитата:

Цитата ts1000win
Кодировка ANSI. Обязательно OEM/866? »

В абсолютном большинстве случаев — да.

Цитата:

Цитата ts1000win
В notepad+ не нашел такой кодировки. »

Ищите лучше:
Скрытый текст


Цитата:

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

Проблема и там, и там.

Цитата:

Цитата ts1000win
Еще… »

Повторяю ещё раз пример выше:
Код:

>>"C:\Documents and Settings\computer\Рабочий стол\Data\1.txt" echo # text 1
Проблема в том, что «1» в Вашем коде:
Цитата:

Цитата ts1000win
Код:

@echo # text 1>> C:\Documents and Settings\computer\Рабочий стол\Data\1.txt
»

относится не к echo, а к >>, и воспринимается как номер потока, в данном конкретном случае — стандартного потока вывода, stdout.

megaloman 09-10-2016 14:54 2676343

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 2676362

с выводом из консоли в файл кириллицы на ОС W7+, КМК лучше сразу в UTF-8 делать и все.
Код:

@chcp 65001

alpap 09-10-2016 17:47 2676390

Цитата:

Цитата x0r
выводом из консоли в файл »

а можно это увидеть примером полной строкой или скриншотом?

x0r 09-10-2016 21:10 2676426

Выше же все нописали, я просто добавил мыслю.
Вот у мну, нопример, батник создает плейлист из папок(папки по датам, внутри там мелкие файлы) куда качаются ролики
Код:

@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 2676433

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

x0r 09-10-2016 21:40 2676439

так-то, да...


Время: 19:10.

Время: 19:10.
© OSzone.net 2001-