PDA

Показать полную графическую версию : [решено] Переменная? Подстановка в команду данных из файла. Не получается..


NLOLegion
03-11-2017, 15:36
Есть у меня вот такой код

set /p 111=<C:\2\111.txt
C:\2\balcon.exe -n "%111%" -f "C:\2\О.txt"

По сути мне надо чтобы консольная балаболка прочитала текст из файла "C:\2\О.txt". В файле "C:\2\111.txt" записана всего одна строчка IVONA 2 Maxim OEM. Это название голосового движка. Если код выше просто вставить в командную строку то всё работает, но если запустить как батник обычным двойным кликом, то нет. Почему мне не понятно. Помогите исправить. Буду очень признателен. Почему-то мне кажется что ошибка какая-то детская, но тем не менее я с ней не справляюсь.
Был ещё вот такой вариант, но тоже не удачно как-то..

set str=C:\2\balcon.exe -n "111" -f "C:\2\О.txt
set str=%str:111=<C:\2\111.txt%
%str%

Iska
03-11-2017, 16:42
Есть у меня вот такой код »
Это весь код или ещё что-то есть в пакетном файле?

Если код выше просто вставить в командную строку то всё работает, но если запустить как батник обычным двойным кликом, то нет. »
Судя по тому, что выделенное:
C:\2\balcon.exe -n "%111%" -f "C:\2\О.txt" »
— кириллица, убедитесь, что Вы сохраняете пакетный файл в кодировке OEM/866.

alpap
03-11-2017, 21:36
NLOLegion,
Найдите отличие:

вар1
@echo off
set /p 111=<C:\2\111.txt
echo %111%
pause

вар2
@echo off
set /p z=<C:\2\111.txt
echo %z%
pause

NLOLegion
04-11-2017, 05:08
alpap, получается что? единицы экранировали? теперь всё работает. Спасибо.

alpap
04-11-2017, 13:36
NLOLegion,
ну если хочется сильно вывести переменную с таким именем, то строку вывода записать надо так, например:

cmd /v/c echo !111!

или

cmd /c echo %%111%%




© OSzone.net 2001-2012