Lote / Cmd Lido para o conteúdo de um arquivo e atualizar em outro

0

Eu deveria ser capaz de fazer isso, mas acho que o cérebro já teve o suficiente para o dia: ~ (

Eu tenho um arquivo no seguinte formato (já contendo os valores):

 Server=\servername\sharepath

 Username=server\user

 Password=passwdval

Eu preciso ler os valores e inserir esses valores no seguinte arquivo (como mostrado abaixo):

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

Isso TEM que ser feito com um arquivo batch / cmd.

    
por Ted 13.09.2017 / 22:49

1 resposta

0

Simplesmente faça o eco do seu texto e escape de todo o <> com um caret ^< e ^> .
Leia seu arquivo de entrada e divida no sinal de igual com um / f em %%A/%%B .
Você precisa dividir o nome de usuário em DOMAIN e USER com outro para / f %%C/%%D .

:: Q:\Test17\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%"

Exemplo de saída:

> type SU_1250115.xml
<SHARE>\servername\sharepath<SHARE>
<DOMAIN>server</DOMAIN>
<USER>user</USER>
<UPWD>passwdval<UPWD>
    
por 14.09.2017 / 02:42