Проблема с созданием txt файла из приложения через .bat (cmd) - не установить текст с пробелом и запятой - PullRequest
1 голос
/ 18 марта 2019

В приложении у меня есть процесс, который выполняет файл .bat на компьютере и отправляет через переменный (заданный) текст для создания текстового файла bat как:

@echo off
chcp 65001
setlocal EnableDelayedExpansion
SET "op=%1"
echo !op!>>C:\test\test.txt
chcp 866 > NUL

отправлять текст как:

^<office^>"(Town) - Street, number"^</office^>

Отправка процедуры в цикле, и первый текст записывается хорошо, но второй в текстовом файле выглядит как

<office>

, и файл заканчивается.Почему это случилось?

1 Ответ

1 голос
/ 18 марта 2019

Единственный раз, когда это может произойти, если в вашей строке есть пробел, возможно, приложение отправляет строку, включая пробел? По этой причине я бы изменил строку, заключив ее в двойные кавычки:

"^<office^>(Town) - Street, number^</office^>"

Затем мы можем расширить его, чтобы избавиться от кавычек, используя %~1

@echo off
chcp 65001
setlocal EnableDelayedExpansion
SET "op=%~1"
echo !op!>>C:\test\test.txt
chcp 866 > NUL

Затем вы можете проверить его, и он должен использовать всю строку каждый раз:

batchfile.bat "^<office^>(Town) - Street, number^</office^>"

и результат остается неизменным в test.txt после 4 запусков:

<office>(Town) - Street, number</office>
<office>(Town) - Street, number</office>
<office>(Town) - Street, number</office>
<office>(Town) - Street, number</office>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...