Como criar um script '' droplet '' no Win7 que executa uma tarefa do Notepad ++ em um arquivo CSV

0

Recentemente, fiz uma pergunta sobre como executar uma pequena e simples 'Localização & Substituir 'tarefa em meus arquivos de banco de dados de mídia CSV (uma tarefa que eu tenho que fazer no trabalho diariamente). A pergunta foi respondida aqui se alguém estiver interessado nos detalhes.

Agora quero simplesmente arrastar e soltar meu arquivo CSV em um droplet na área de trabalho que executa a tarefa Localizar e substituir o Notepad ++ de maneira rápida e fácil, para que eu possa delegar essa tarefa a mais membros da equipe quando estou longe.

Pergunta:

Como eu crio um droplet no Win 7 que executa o seguinte 'Find & Substituir 'comando em qualquer arquivo CSV derrubado nele?

Texto:

Encontre o que:

^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),

Substituir por:

$1_$2,

Verificar: Embrulhe

Verificar: expressão regular

Executar: Substituir tudo

Estou imaginando que isso poderia ser um script em lote (ou qualquer script do tipo) que receberá meu arquivo CSV como o arquivo de entrada simplesmente arrastando-o para o script.

    
por Myles 28.08.2018 / 12:48

1 resposta

1

O Windows 7 vem com o PowerShell v2, que suporta expressões regulares com atrasos negativos.

Se eu interpretar o seu RegEx corretamente, você deseja aplicar os dois dígitos 99_ que levam o segundo campo a ser exibido também o terceiro campo, desde que ainda não exista um _99 number. E deixe as outras linhas / restante da linha como é.

Um arquivo em lotes que atua como um destino de descarte (também manipula vários arquivos):

:: SO_1352996.cmd
@Echo off
:Loop
If "%~1" equ "" goto :Eof
If not exist "%~1" (shift & goto :Loop)
Ren "%~f1" "%~n1_Original%~x1"
:: Use PowerShell as a tool to do the replace.
Powershell -NoP -C "(Get-Content '%~dpn1_Original%~x1') -replace '^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),','$1_$2,' | Set-Content '%~f1'
Shift
Goto :Loop

arquivo.csv antes

test,12_blah,blubb,anything
test,34_blah,blu_34,doesn't matter
test,56_foo,bar,nevermind

e depois de cair no lote acima.

test,12_blah,blubb_12,anything
test,34_blah,blu_34,doesn't matter
test,56_foo,bar_56,nevermind

O arquivo original é salvo com a extensão adicional .bak

    
por 28.08.2018 / 15:42