Tengo un archivo de texto en el que sé que la línea 16 del archivo comenzará con _____Dest : xxx, donde los guiones bajos (5) son todos espacios y xxx no es una longitud de carácter conocida y puede contener espacios. Quiero asignar xxx a una variable en un archivo por lotes. Me imagino que el código contendría un for /f "skip=15 delims=" y un find "Dest : " allí, pero no estoy exactamente seguro de cómo hacerlo.

Si ayuda, sé que xxx será una ruta que comienza con \\ y quiero incluir \\ en la variable.

Aquí hay un extracto del archivo:

******************************************************************************* 
*                                                                             * 
* This is the robocopy log section.                                           * 
*                                                                             * 
******************************************************************************* 



-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : Fri Dec 09 20:28:08 2016

   Source : \\server\path...
     Dest : \\server\path...

    Files : *.*

  Options : *.* /TEE /S /E /COPY:DAT /MT:128 /R:1 /W:1 

etc.
etc.

Quiero asignar todo en la línea 16 después de Dest : a una variable

0
indy-pc 14 dic. 2016 a las 22:17

2 respuestas

La mejor respuesta

Aquí hay un ejemplo rápido de cómo lo haría:

Este método significa que no hay necesidad de omitir / contar líneas y solo selecciona las líneas donde el destino de la copia automática es una ruta de servidor, (según sus especificaciones).

For /F "Tokens=1*Delims=\" %%A In ('Find "Dest : \\" ^<"file.ext"') Do Set "VAR=\\%%B"

Donde file.ext es su registro de salida de robocopy.

0
Compo 15 dic. 2016 a las 11:25
for /f "skip=15tokens=1*delims=: " %%a in (filename) do set "var=%%b"&goto done
:done

Donde necesitaría "citar" cualquier nombre de archivo que contenga separadores, y si usa un nombre de archivo entre comillas, entonces también deberá incluir la opción de análisis usebackq antes de skip.

0
Magoo 15 dic. 2016 a las 00:30