Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проблемы кодировки в теле скрипта и выводе в файл

Ответить
Настройки темы
CMD/BAT - Проблемы кодировки в теле скрипта и выводе в файл

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый вечер. Помогите, пожалуйста разобраться с нюансами кодировок в cmd/bat и , по возможности, доработать скрипт.
Суть такова:
Код: Выделить весь код
dir d: |find "свободно" >> "c:\Program Files\backups\Logs\log 2015-03-23.txt" 
pause
Собственно, скрипт, который нужен, чтобы в конец текстового файла-лога дописывалась информация о свободном месте на указанном диске (в данном случае диске "d").
По началу проблемы возникали с частью кода
Код: Выделить весь код
"find "свободно"
который в консоли выводился как
Код: Выделить весь код
"find "ётюсюфэю"
и, соответственно не находил нужную строку.
После серфинга интернетов по проблемам кодировки в cmd, шаманинга с chcp разными кодировками и сохранением в notepad, стало ясно, что лечится это как раз таки сохранением через notepad в кириллической кодировке OEM 866.
Но теперь возникла проблема с выводом результата в текстовый файл. На выходе видны только кракозябры.
Как это можно исправить?
Также хотелось бы узнать как задать маску поиска текстового файла, чтобы скрипт дописывал информацию о свободном месте в последний по дате лог-файл. Если в коде указать вместо
Код: Выделить весь код
"c:\Program Files\backups\Logs\log 2015-03-23.txt"
Код: Выделить весь код
"c:\Program Files\backups\Logs\log*.txt"
Скрипт не работает.
Заранее спасибо.

Отправлено: 17:59, 26-03-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата NinjaScript:
через notepad в кириллической кодировке OEM 866. »
У Блокнота нет такой кодировки. Требуется иной редактор, в котором есть поддержка OEM/866.

Цитата NinjaScript:
Но теперь возникла проблема с выводом результата в текстовый файл. На выходе видны только кракозябры.
Как это можно исправить? »
Вывод тоже идёт в OEM/866. Что делать — пользовать иной редактор. Я пользую редактор от Far Manager'а, там кодировки и вовсе могут меняться «на лету».

Не надо ничего исправлять или делать вывод в ANSI/1251. Просто привыкните к тому, что консоль интерпретатора команд «cmd.exe» — это OEM.

Цитата NinjaScript:
Также хотелось бы узнать как задать маску поиска текстового файла, чтобы скрипт дописывал информацию о свободном месте в последний по дате лог-файл. »
Сначала его нужно найти. Кстати, «последний по дате» — по дате создания файла, по дате модификации или по дате в самом имени файла? Вот, например, определение по дате в имени файла:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
	`2^>nul dir /b /a:-d /o:n "%ProgramFiles%\backups\Logs\log *.txt"`
) do set sName=%ProgramFiles%\backups\Logs\%%~i

if defined sName (
	echo [%sName%]
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:02, 26-03-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата Iska:
У Блокнота нет такой кодировки. »
в 8-ке есть, в 7-ке тоже вроде была.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:41, 26-03-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
в 7-ке тоже вроде была. »
Неа. Я сейчас временно сижу как раз под ней.

Хорошо, что насилу в новых версиях сделали. А как там с автоопределением кодировки?

Отправлено: 20:48, 26-03-2015 | #4


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата Iska:
А как там с автоопределением кодировки? »
Плохо. Ну как бы и бог с ним, с блокнотом.

Отправлено: 21:05, 26-03-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Ну, и ладно. Хотя бы в принципе работать можно — и то уже хорошо.

Отправлено: 22:22, 26-03-2015 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проблемы кодировки в теле скрипта и выводе в файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
mac os исполняемый файл из скрипта alexander.rudenko.75@fb Программирование в *nix 0 15-02-2013 17:09
PowerShell - [решено] Не получается разделить строки при выводе в файл rudimko Скриптовые языки администрирования Windows 2 15-02-2013 12:29
Выполнение SQL запроса в теле скрипта support23 AutoIt 2 06-12-2012 16:48
помещение в html файл скрипта php vagner_HATE Вебмастеру 2 12-11-2004 18:54
Как создать файл с помощью CGI скрипта. lehha Программирование и базы данных 1 20-11-2003 09:48




 
Переход