
¿Cómo puedo usar la línea de comando de Windows para hacer lo siguiente?
C:\Users\My Computer\SkyDrive\WORK ORDERS\Subdivision\Sec. 1\12345678_123 LUMINAIRE LN.pdf
becomes
WORK ORDERS\Subdivision\Sec. 1\12345678_123 LUMINAIRE LN.pdf
Estoy más familiarizado con Linux, para lo cual uso lo siguiente
cat wo.txt2 | grep "WORK\|pdf|" | sed 's/^.*WORK/WORK/' >> wo.txt
Hay alrededor de 17k líneas en mi archivo de texto.
Respuesta1
Usando lote puro:
@echo off
setlocal disableDelayeExpansion
set "input=wo.txt2"
set "output=wo.txt"
>"%output%" (
for /f "delims=" %%A in ('findstr /n "^" "%input%"') do (
set "ln=%%A"
setlocal enableDelayedExpansion
set "ln=!ln:*:=!"
if defined ln set "ln=!ln:*WORK=WORK!"
(echo(!ln!)
endlocal
)
)
Tenga en cuenta que la búsqueda de TRABAJO no distingue entre mayúsculas y minúsculas.
FINDSTR se utiliza para prefijar cada línea con el número de línea seguido de dos puntos, a fin de conservar las líneas en blanco.
La expansión retrasada se activa y desactiva dentro del bucle para preservar lo !
que pueda existir en el archivo fuente.
Una solución mucho más sencilla es utilizar miUtilidad de procesamiento de texto con expresiones regulares JREPL.BAT- una utilidad basada puramente en scripts (JScript/batch híbrido) que se ejecuta de forma nativa en cualquier máquina con Windows desde XP en adelante.
Desde la línea de comando:
jrepl "^.*WORK" "WORK" /f "wo.txt2" /o "wo.txt"
Debe utilizar CALL JREPL si utiliza el comando dentro de un script por lotes.
Respuesta2
Utilice notepad++, abra el archivo, presione la tecla alt y seleccione las "columnas" de texto que no desea con el mouse. Mientras presionas la tecla alt, permaneces en modo columna. Suelta la tecla Alt y presiona Supr. Esto es válido si todas las líneas tienen la misma cantidad de caracteres para eliminar.
Respuesta3
Eche un vistazo a funciones de cadena como este ejemplo:
set str=el gato con el sombrero eco.%str% establecer str=%str:teh=el% eco.%str%
Básicamente deseas reemplazarlo C:\Users\My Computer\SkyDrive\
con un espacio en blanco.
Aquí hay una lista de funciones de cadena que puede usar:http://www.dostips.com/DtTipsStringManipulation.php#Snippets.MidString