Максимальный размер данных в переменной

sashavir

Новый пользователь
Сообщения
3
Реакции
1
Баллы
3
Добрый день!
Необходимо было REG ADD-ом добавить в реестр параметр в шеснадцатеричном виде из переменной в bat файле, но обнаружил, что уперся в ограничения размера переменной, можно как-то увеличить в CMD квоту на переменную?
 

sashavir

Новый пользователь
Сообщения
3
Реакции
1
Баллы
3
эксперементальным путем выяснил, что данная конструкци set /p a=""<a.txt читает строку только до 1024 символа, а вся строка у меня занимает 7932 символа, т.е. тут не ограничение в переменной, а похоже ограничение данной команды...
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,260
Реакции
6,047
Баллы
718
Здравствуйте!

Документированного способа увеличить этот лимит, нет.
Судя по моему раннему эксперименту (пост #12)
переменная может хранить примерно до 8183 символов,
так что ваш лимит в 1024 скорее связан не с переменной, а с конкретной командой set /p

Воспользуйтесь другим языком для решения данной задачи.

Возможно, эта таблица вам будет также полезна:

P.S. Кстати, там ещё есть лимит на максимальную длину строки, переданную на исполнение интерпретатору,
помимо лимита, который может быть ещё и у самой reg.exe ;)

Так что лучше сделать на ЯП, где вы сами напишите нужные WinAPI функции,
либо каком-нибудь гибриде, с тем же batch, можно скомбинировать cscript
для получения входящей строки, а итоговые данные для импорта в реестр
подготовить с помощью динамического создания .reg-файла и дальше reg.exe import.
 
Последнее редактирование:

sashavir

Новый пользователь
Сообщения
3
Реакции
1
Баллы
3
Спасибо! Похоже так оно и есть с set /p, с конструкцией for /F %%a in (test.txt) do (set test=%%a) все нормально, грузится полностью
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,260
Реакции
6,047
Баллы
718
Дополнил сообщение.
 
Сверху Снизу