Buenas a tod@s,
Tengo un problema, he de modificar un archivo xml del filezilla en muchos equipos y estoy atascado a la hora de hacer el script, porque necesito cambiar el nombre del usuario y el la Pass están en rojo, el problema viene cuando se modifica el nombre del usuario también se modifica el del host porque ambos contienen la misma palabra contenidos os adjunto la parte del código del xml
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<FileZilla3>
<Servers>
<Folder expanded="1">Redaccion
<Server>
<Host>ftp-contenidos.int</Host>
<Port>21</Port>
<Protocol>0</Protocol>
<Type>0</Type>
<User>contenidos</User>
<Pass>iW5kexal5M</Pass>
<Logontype>1</Logontype>
<TimezoneOffset>0</TimezoneOffset>
<PasvMode>MODE_DEFAULT</PasvMode>
<MaximumMultipleConnections>0</MaximumMultipleConnections>
<EncodingType>Auto</EncodingType>
<BypassProxy>0</BypassProxy>
<Name>Contenidos-interno</Name>
<Comments></Comments>
<LocalDir></LocalDir>
<RemoteDir></RemoteDir>
<SyncBrowsing>0</SyncBrowsing>Contenidos-interno
</Server>
<Server>
<Host>ftp-interno.int</Host>
<Port>21</Port>
<Protocol>0</Protocol>
<Type>0</Type>
<User>sdl</User>
<Pass>kJdm43!</Pass>
<Logontype>1</Logontype>
<TimezoneOffset>0</TimezoneOffset>
<PasvMode>MODE_DEFAULT</PasvMode>
<MaximumMultipleConnections>0</MaximumMultipleConnections>
<EncodingType>Auto</EncodingType>
<BypassProxy>0</BypassProxy>
<Name>ftp-interno</Name>
<Comments></Comments>
<LocalDir></LocalDir>
<RemoteDir></RemoteDir>
<SyncBrowsing>0</SyncBrowsing>ftp-interno
</Server>
</Folder>
</Servers>
</FileZilla3>
Bueno yo he conseguido lo siguiente, con este código me cambia la pass, esto si funciona aparentemente
@echo off
Setlocal EnableDelayedExpansion
set HOME=\\scripts\chftp
set USER=xxx.int\admin
set PASS=admin
:: ojo, hay que escapar algunos caracteres, el simbolo de dólar entre ellos
set OLDPASS1=contenid0\$
set OLDPASS2=GqedVja8
set OLDPASS3=iW5kexal5M
set NEWPASS=Contenido1
set TIMESTAMP=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%
taskkill /s %1 /u %USER% /p %PASS% /IM filezilla.exe /F
net use \\%1\c$ /d > nul 2>&1
net use \\%1\c$ %PASS% /user:%USER%
if not %errorlevel% EQU 0 goto ERROR
pushd \\%1\c$
if not %errorlevel% EQU 0 goto ERROR
set SEDEXPR1="s/%OLDPASS1%/%NEWPASS%/g"
set SEDEXPR2="s/%OLDPASS2%/%NEWPASS%/g"
set SEDEXPR2="s/%OLDPASS3%/%NEWPASS%/g"
for /D %%a in ("\documents and settings\*.*") do (
set INFILE="%%a\Datos de programa\FileZilla\sitemanager.xml.%TIMESTAMP%"
set OUTFILE="%%a\Datos de programa\FileZilla\sitemanager.xml"
set TMPFILE="%%a\Datos de programa\FileZilla\sitemanager.tmppass"
if exist !OUTFILE! (
copy /Y !OUTFILE! !INFILE!
%HOME%\sed.exe !SEDEXPR1! !INFILE! >!TMPFILE!
%HOME%\sed.exe !SEDEXPR2! !TMPFILE! >!OUTFILE!
del !TMPFILE!
)
)
popd
echo HECHO
goto END
:ERROR
echo FALLO
:END
net use \\%1\c$ /d > nul 2>&1
Esta parte es la que no funciona me modifica todo
@echo off
Setlocal EnableDelayedExpansion
set HOME=\\scripts\chftp
set USER=xxx.int\admin
set PASS=admin
:: ojo, hay que escapar algunos caracteres, el simbolo de dólar entre ellos.
:: En el primer paso del fichero cambiamos el usuario.
set OLDUSER=contenidos
set NEWUSER=informacion
set TIMESTAMP=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%
taskkill /s %1 /u %USER% /p %PASS% /IM filezilla.exe /F
net use \\%1\c$ /d > nul 2>&1
net use \\%1\c$ %PASS% /user:%USER%
if not %errorlevel% EQU 0 goto ERROR
pushd \\%1\c$
if not %errorlevel% EQU 0 goto ERROR
set SEDEXPR1="s/%OLDUSER%/%NEWUSER%/g"
set SEDEXPR2="s/%NEWUSER%/%NEWUSER%/g"
for /D %%a in ("\documents and settings\*.*") do (
set INFILE="%%a\Datos de programa\FileZilla\sitemanager.xml.%TIMESTAMP%"
set OUTFILE="%%a\Datos de programa\FileZilla\sitemanager.xml"
set TMPFILE="%%a\Datos de programa\FileZilla\sitemanager.tmppass"
if exist !OUTFILE! (
copy /Y !OUTFILE! !INFILE!
%HOME%\sed.exe !SEDEXPR1! !INFILE! >!TMPFILE!
%HOME%\sed.exe !SEDEXPR2! !TMPFILE! >!OUTFILE!
del !TMPFILE!
)
)
popd
echo HECHO
goto END
Solo necesito cambiar el user que esta en color rojo, mejor dicho no se como llegar a decirle al programa como llegar a la etiqueta user y modifique unicamente el user y deje el host como esta.
Muchas gracias
[MOD] Deberias usar las etiquetas GeSHi, para poner el código.