
Como posso usar a linha de comando do Windows para fazer o seguinte?
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
Estou mais familiarizado com o Linux, para o qual uso o seguinte
cat wo.txt2 | grep "WORK\|pdf|" | sed 's/^.*WORK/WORK/' >> wo.txt
Há cerca de 17 mil linhas no meu arquivo de texto
Responder1
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
)
)
Observe que a pesquisa por WORK não diferencia maiúsculas de minúsculas.
O FINDSTR é usado para prefixar cada linha com o número da linha seguido de dois pontos, de modo a preservar as linhas em branco.
A expansão atrasada é ativada e desativada dentro do loop para preservar qualquer !
coisa que possa existir no arquivo de origem.
Uma solução muito mais simples é usar meuUtilitário de processamento de texto regex JREPL.BAT- um utilitário puro baseado em script (JScript/batch híbrido) que roda nativamente em qualquer máquina Windows a partir do XP.
Na linha de comando:
jrepl "^.*WORK" "WORK" /f "wo.txt2" /o "wo.txt"
Você deverá usar CALL JREPL se usar o comando em um script em lote.
Responder2
Use o notepad ++, abra o arquivo, pressione a tecla alt e selecione as "colunas" de texto que você não deseja com o mouse. Enquanto você pressiona a tecla Alt, você permanece no modo de coluna. Solte a tecla alt e pressione del. Isto é válido se todas as linhas tiverem o mesmo número de caracteres a serem excluídos.
Responder3
Dê uma olhada nas funções de string como este exemplo:
set str=o gato no chapéu eco.%str% definir str=%str:teh=o% eco.%str%
Você basicamente deseja substituir C:\Users\My Computer\SkyDrive\
por um espaço em branco.
Aqui está uma lista de funções de string que você pode usar:http://www.dostips.com/DtTipsStringManipulation.php#Snippets.MidString