Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62

Для чего нужна конструкция «for /F %%? in ('echo яю')»?

26.10.2013, 00:32. Показов 2539. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
2) исходник кода сохранить в кодировке OEM-866:
Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
:: преобразование текстового файла в unicode (utf-16 LE)
:: вызов: to_uni infile outfile codepage
:: BAT-файл должен быть сохранен в кодировке OEM-866
SetLocal EnableExtensions
For /f "tokens=2 delims=:" %%G in ('CHCP') do Set _codepage=%%G
chcp 866 >nul
for /F %%? in ('echo яю') do chcp 1251 >nul& CMD.EXE /D /A /C (set /p=яю)<NUL > "%~2"
CHCP %~3 >NUL
CMD.EXE /D /U /C TYPE "%~1" >> "%~2"
CHCP %_codepage% >NUL
Не понял, что делает эта часть: for /F %%? in ('echo яю')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2013, 00:32
Ответы с готовыми решениями:

Для чего данная конструкция?
Для чего данная конструкция? void (*foo)(int);

Константа, для чего такая конструкция?
Видел в некоторых плагинах такую конструкцию: define ('__CLASS__', '', true); Подскажите, для чего это делается? Почему в кавычках...

Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл)
Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл). Рисунок который нужно вывести: ...

9
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.10.2013, 00:47
Malysh-ok, хм. Прикольно. А я как-то не всматривался в эту часть.
Судя со всей строки, теоретически - ничего не делает.
Только выполняет вот эту часть:
Bash
chcp 1251 >nul& CMD.EXE /D /A /C (set /p=яю)<NUL > "%~2"
в новом потоке CMD.
Нужно дополнительные тесты, чтобы точно сказать. Посмотрю позже. (самый прикол, что батник модифицировал я, вроде )
А вся суть как раз в дописывании идентификатора BOM в начало файла.
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
26.10.2013, 13:03  [ТС]
Собственно, я делаю так:
Bash
1
2
3
4
chcp 1251 >nul
cmd.exe /d /a /c (set /p=яю)<nul >%nameErr2% 2>&1
chcp 866 >nul
cmd /U /C type %nameErr% >>%nameErr2% 2>&1
Не работает: открываю в akelpad'e, пишет utf-16 le (без bom), и в начале файла - закорючки.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.10.2013, 18:48
Malysh-ok, воспользуйтесь тем кодом, что я давал ссылку.
Я проверял, AkelPad пишет, что BOM присутствует.
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
27.10.2013, 11:21  [ТС]
Так вроде, это и есть тот же самый код...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.10.2013, 18:06
Malysh-ok, перепроверил еще раз - все работает.
Вы просто кодировки напутали.
Перечитайте исходник еще раз. Там код № 1 нужно сохранять в кодировке 1251,
а если воспользуетесь кодом № 2 - то в кодировке 866.
И файл для перекодировки тоже должен быть соответствующий.
Если Вы собираетесь перекодировать файл с кодировки 866 в Юникод, то аргумент задаем - 866.
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
27.10.2013, 21:02  [ТС]
По-ходу
Bash
1
for /F %%? in ('echo яю') ...
работает, раз результаты разные (т.е. с этим куском - все ОК). Хотелось бы таки узнать что и как он делает (век живи - век учись ).
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
27.10.2013, 21:40
Цитата Сообщение от Malysh-ok Посмотреть сообщение
echo яю
Это и есть BOM
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
27.10.2013, 23:21  [ТС]
FraidZZ, это очевидно.
Вопрос, для чего for /F %%? in ???
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
28.10.2013, 12:50
Цитата Сообщение от Malysh-ok Посмотреть сообщение
(set /p=яю)
А не ошибка? В коде должно быть set /p x=яю

Конструкция же действительно странна. Судя по всему, for /f %%? IN ('echo яю') осталось от прошлого кода.
Во всяком случае, я дальнейшего использования %%? в коде не вижу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2013, 12:50
Помогаю со студенческими работами здесь

Для чего нужна сериализация?
из msdn Сериализация представляет собой процесс преобразования объекта в поток байтов для хранения объекта или передавать его в...

Для чего нужна строчка
Здравствуйте, объясните пожалуйста, зачем мы пишем строчку: &quot;a.length - 1&quot;я понимаю, что для этого задание надо вывести строку, но зачем от...

Для чего нужна BASSWMA?
Насколько я понял данная библиотека является аддоном для библиотеки bass, и позволяет воспроизводить WMA файлы, но даже без данного аддона...

Для чего нужна функция Get?
Помогите пожалуйста, объясните, для чего нужно функция Get unit Unit1; interface type TMasList = class ...

для чего нужна строчка?
добый день!подскажите пожалйста ,что означает следующая строчка,а в особенности ID_WIN HWND hch = GetDlgItem(GetParent(hwnd), ID_WIN); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru