una roben resetear que para mejor hacer digitos desbloquear con como combinacion candado cadena bicicleta asegurar antirrobo amarrar abrir string batch-file cmd find

string - roben - Lote para encontrar una cadena de combinación de números y letras solo en los primeros 10 caracteres(en un archivo txt) por fila e imprimir toda la fila



desbloquear combinacion 4 digitos bicicleta (4)

Tengo una pregunta sobre el archivo por lotes. Necesito un archivo por lotes que encontrará una cadena de combinación de números y letras solo en las primeras 10 letras por fila (en múltiples archivos .txt) e imprimirá toda la fila en un archivo .txt de salida. Por el momento he estado usando esto:

@echo off findstr "A1234 B5678" "*.txt" for /f "delims=" %%A in (''findstr "A1234 B5678" "*.txt"'') do (echo %%A >> OUTPUTFILE.txt)

Entonces, lo que estoy buscando arriba es una combinación de letras A1234 y B5678 (solo un ejemplo) en todos los archivos txt en el directorio e imprimiéndolos en outputfile.txt. Funciona bien, pero necesito mejorar esto un poco. Solo quiero que el lote encuentre esta combinación (A1234 y B5678) en solo las primeras 10 letras por fila e imprima toda la fila en un archivo txt de salida. Por ejemplo, tendríamos varios archivos txt que tendrían en sí mismos líneas como estas:

00 A1234 QWERTZ AA B5678 ASDFGH

Batch verificaría todos los archivos para la combinación de cadenas A1234 y B5678 e imprimiría toda la fila que tenía esa combinación en ellas.
Espero que me entiendan, porque mi inglés no es el mejor. Además, no tengo mucha experiencia en cmd así que, si es posible, hazlo tan fácil (comprensible) como sea posible :).
¡Muchas gracias!


Esto utiliza un archivo de ayuda por lotes llamado findrepl.bat que es similar a grep pero se ejecuta como un archivo de proceso por lotes simple; se puede encontrar aquí - http://www.dostips.com/forum/viewtopic.php?f=3&t=4697

findrepl.bat usa jscript en el Windows Scripting Host y funcionará a menos que su administrador de TI haya deshabilitado WSH.

@echo off for %%a in (*.txt) do ( echo ============="%%a"================>>search type "%%a"|findrepl "^.. (A1234|B5678)">>search ) ren search search.txt


Hay otra forma de hacerlo que es un poco más complicada, pero no depende de un código adicional. Corta todos los archivos txt en el directorio actual en líneas. Los primeros 10 caracteres de estas líneas se alimentan en findstr. Si findstr tiene éxito, echos la línea a la consola.

Use el siguiente archivo por lotes:

@echo off setlocal for /f "delims=" %%I in (''dir/B *.txt'') do ( for /f "delims=" %%J in (%%I) do ( set "_=%%J" call echo %%_:~0,10%%|findstr "PATTERN1 PATTERN2"&&call echo %%_%% ) ) endlocal goto:eof

Para las grietas: sé que hay ENABLEDELAYEDEXPANSION. Por lo tanto, el estilo de llamada podría evitarse mediante el uso de

setlocal ENABLEDELAYEDEXPANSION

y

echo !_:~0,10!|findstr "PATERN1 PATERN2"&&call echo !_!

Pero considero esto como un mal estilo, porque esto tiende a causar problemas, especialmente si algo que quiere hacer eco incluye ''!'' Así que siempre uso la llamada y el estilo double %% en mis ejemplos, excepto que DELAYEDEXPANSION no se puede evitar.


Si está completamente configurado para usar cmd, puede usar findstr con el indicador de expresión regular de la siguiente manera:

C:/>type test.txt 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 00 A1234 QWERTZ AA B5678 ASDFGH BB A1234 B5678 C:/>findstr /R "^*[A][0-9]* [B][0-9]*$" test.txt BB A1234 B5678 BB A1234 B5678 BB A1234 B5678 BB A1234 B5678 BB A1234 B5678 BB A1234 B5678 BB A1234 B5678

- ab1


Si te entendí bien, deseas buscar en los primeros 10 caracteres combinaciones múltiples alfanuméricas específicas. Creo que puedes hacer esto con una expresión regular, pero lamentablemente Findtr no puede manejar patrones alternativos.

findstr /r "(pattern1|pattern2)"

No funciona. Por lo tanto, tiene que expandirse para grep para las ventanas que se pueden encontrar aquí. La sintaxis para n patterns es:

grep -h -E -e "^.. ({PATTERN 1}|{PATTERN 2}|...|{PATTERN 2})" *.txt

Para su ejemplo, puede usar:

grep -h -E -e "^.. (A1234|B5678)" *.txt

busque en cada * .txt cualquier línea que comience con 2 letras al azar seguidas de un espacio seguido por A1234 o B5678 e imprima esta línea. El -h al principio suprime la salida del nombre de archivo de la línea.