Вход | Регистрация
 
Информационные технологии :: Администрирование

Не работает батник

Не работает батник
Я
   Про100Филя
 
26.04.19 - 12:56
Добрый день.
Пытаюсь батником прочесть из текстового файла(List.txt), строки и добавить их к другой строке.
В файле List.txt
Hello
world
!

Пытаюсь батником прочитать так, чтобы в переменную _Text записалась вся строка "Hi! Hello world!", но вместо этого выходит "Hi!!"
@ECHO OFF
CLS
SET _CURRENTPATH=%~dp0
SET _TxtFile="%_CURRENTPATH%\List.txt"
SET _Text=Hi!

for /f "usebackq tokens=1*" %%a in (%_TxtFile%) do (
SET _Text=!_Text!%%a
)
echo %_Text%
pause

В чем ошибка?
 
 
   dmrjan
 
1 - 26.04.19 - 12:58
Кодировка ANSY?
   Про100Филя
 
2 - 26.04.19 - 13:01
(1) Везде Utf8, кириллицу выводить не нужно.
Если в цикл добавить вывод %%a то видно что файл читается, но присваевается строке только последнее значение
for /f "usebackq tokens=1*" %%a in (%_TxtFile%) do (
SET _Text=!_Text!%%a
echo %%a
)
   arsik
 
3 - 26.04.19 - 13:03
Кто то еще батниками пользуется? Для вас майкрософт специально повершелл создала, а вы все в старое макаетесь.
   Йохохо
 
4 - 26.04.19 - 13:11
set _text=%_text%%%a
?
   Про100Филя
 
5 - 26.04.19 - 13:16
(4) Вообще не присваивает в конце.

Частично решил добавлением в начало setlocal EnableDelayedExpansion, но пропали знаки
   Про100Филя
 
6 - 26.04.19 - 13:22
(3) Ну например я. Есть необходимость дописать скрип который лет 10 работает. Powerhell избыточен в этой задаче.
   Про100Филя
 
7 - 26.04.19 - 13:26
(5)  + Пропадает только знак ! остальные символы на месте. Можно закрывать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.