Я должен быть в состоянии сделать это, но я думаю, что мозгу хватило на день:~(

У меня есть файл в следующем формате (уже содержит значения):

 Server=\\servername\sharepath

 Username=server\user

 Password=passwdval

Мне нужно прочитать значения и вставить эти значения в следующий файл (как показано ниже):

<SHARE>\\servername\sharepath</SHARE>
<DOMAIN>server</DOMAIN>
<USER>user</USER>  <UPWD>passwdval</UPWD>

Это ДОЛЖНО быть сделано с помощью пакетного /cmd-файла.

1 ответ1

0

Просто повторяйте текст и избегайте всех <> с помощью каретки ^< и ^> .
Прочитайте ваш входной файл и разделите его на знак равенства с помощью for /f на %%A/%%B
Вы должны разделить имя пользователя на домен и пользователя с другим для /f %%C/%%D

:: Q:\Test\2017\09\14\SU_1250115.cmd
@Echo off
Set "FileIn=SU_1250115.txt"
Set "FileOut=SU_1250115.xml"

( For /f "usebackq tokens=1* delims==" %%A in ("%FileIN%") Do (
    If /i "%%A"=="Server" Echo:^<SHARE^>%%B^<SHARE^>
    If /i "%%A"=="Username" for /f "tokens=1,2 delims=\" %%C in ("%%B") Do (
        echo ^<DOMAIN^>%%C^</DOMAIN^>
        echo ^<USER^>%%D^</USER^>
    )
    If /i "%%A"=="Password" echo ^<UPWD^>%%B^<UPWD^>
  ) 
) >"%FileOut%"

Образец вывода:

> type SU_1250115.xml
<SHARE>\\servername\sharepath<SHARE>
<DOMAIN>server</DOMAIN>
<USER>user</USER>
<UPWD>passwdval<UPWD>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .