Ir ao conteúdo
  • Cadastre-se

Outro Copiar determinado trecho de um arquivo txt via comando bat


Posts recomendados

@ricardo_br Olá Ricardo, bom dia!

Agradeço mais uma vez pela ajuda e seu empenho. 

Referente aos dados, na verdade, vou utilizar os 2 arquivos para o controle. 

Arquivo 01.txt: Será o arquivo que vou inserir os dados do usuário que deverá ser descartado para o Arquivo 02.txt.

Arquivo 02.txt: Será alocado os dados do usuário do Arquivo 01.txt.
 
Nesse último script, fiz o teste, porém, ele tira o Nome,usuario,datainic do Arquivo 01.txt, mas é para manter esse dado, pois no script que estou montando em PS, ele necessita desses campos. Segue evidências:


Antes de rodar o script:
image.png.acd43407bd048ecbacb70acf5c183eb1.png


Após execução do Script:

image.png.e06faf1a628a2fbaa6f3dde94b5567d2.png

 

 

Os dados estão sendo enviados para o Arquivo 02.txt corretamente, mas se eu rodar novamente com 1 usuário dentro do Arquivo 01.txt, o script apaga o arquivo.

 

 

Link para o comentário
Compartilhar em outros sites

@Rafael_Trevisan_2022 ah sim entendi veja se está certo agora:

 

@echo off

set Arquivo01=arquivo 01.txt
set Arquivo02=arquivo 02.txt
set Indice=Nome,usuario,datainic

type "%Arquivo01%" | find /i "%Date%" && call :Alterar
exit


:Alterar
if not exist "%Arquivo02%" >>"%Arquivo02%" echo %Indice%
for /f "tokens=1-3 usebackq Delims=," %%a in ("%Arquivo01%") do if "%%c"=="%date%" (
                                                                                           >>"%Arquivo02%" echo %%a,%%b,%%c
                                                                                          ) else (
                                                                                           >>"%Arquivo01%.tmp" echo %%a,%%b,%%c
                                                                                          )
del /q "%Arquivo01%"
ren "%Arquivo01%.tmp" "%Arquivo01%"
goto :EOF
                                                                                                  

 

Link para o comentário
Compartilhar em outros sites

@Rafael_Trevisan_2022 Meu amigo ItWasntMe me mandou esse código em Powershell, pelo que eu testei ele funciona direitinho:

 

Set-Location $PSScriptRoot

$HeaderItem = 'Nome,usuario,datainic'
$DatadeHoje = (Get-Date).ToString("dd/MM/yyyy")

$FindDtLine = $(cat '.\Arquivo 01.txt' | sls -s $DatadeHoje) 
$RemoveDate = $(cat '.\Arquivo 01.txt' | sls -s -not $HeaderItem,$DatadeHoje)
$RemoveMult = $(cat '.\Arquivo 02.txt' -ea SilentlyContinue | sls -s -not $HeaderItem)

$($HeaderItem ; $RemoveDate) | Set-Content -Path '.\Arquivo 01.txt'
$($HeaderItem ; $RemoveMult ; $FindDtLine) | Set-Content -Path '.\Arquivo 02.txt'

 

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

@ricardo_brOla Ricardo poderia me ajudar com um problema que estou tendo por causa do aspas

 

assim tenho vários arquivos.txt dentro de uma pasta preciso abrir os arquivo e filtrar um código XA="30 e mover para outra pasta mas este aspas do meio bloqueia meu filtro ai achei um comentário que falou sobre Circunflexo (^) tentei usar aqui mas ainda da erro você sabe alguma forma de resolver isso.

 

    SET ORIGEM="C:\Users\igor.santos\Desktop\Macro_Prateleira\Total\*.txt"
    SET DESTINO="C:\Users\igor.santos\Desktop\Macro_Prateleira\Total\Remover"
    
    FOR /F "delims=" %%a in ('findstr /M /I "XA^=^"30" %ORIGEM%') do ( move "%%a" %DESTINO% )

 

Link para o comentário
Compartilhar em outros sites

@Igor_Edu Acredito que seja algo assim dentro de um find para achar um aspas duplas dentro de arquivos de texto você tem usar elas duplicadas ex:

find /i "XA=""30"

 

Já dentro de um findstr você tem que usar \" (barra invertida + aspas duplas: ficando assim:

 

 FOR /F "delims=" %%a in ('findstr /M /I ^"XA=\"30^" "%ORIGEM%"') do move "%%a" "%DESTINO%\" 

 

* Por alguma razão se não der o escape nas aspas externas do findstr -> ^"XA=\"30^" não funciona dentro do for mais fora do for funciona normal...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...

Fala pessoal, bom dia... Cara, gostei muito do tópico mas não consegui fazer um comando aqui que acredito ser simples, toda ajuda será bem vinda.

 

Preciso de um arquivo txt que contenha textos que podem ser copiados, tipo

 

Nome do arquivo: Atalhos.txt

Dentro do arquivo tem:

 

texto1

texto2

texto3

texto4

etc...

 

preciso de um .bat que copie a linha que ele foi programado pra copiar, tipo, copy1.bat, preciso que ele copie a linha um do arquivo Atalhos.txt, daí eu criaria outro .bat, copy2.bat e, ele copiaria a linha dois do arquivo Atalhos.txt, e assim por diante.

 

preciso que ele copie o texto programado para que eu consiga colar em outro lugar.

 

Obrigado

Link para o comentário
Compartilhar em outros sites

@Seu Produto No caso esse bat copiaria a primeira linha Atalhos.txt para a área de transferência onde você poderia abrir o local onde vai colar e usar CTRL + V ou botão direito do mouse e colar...

 

@echo off

set Arquivo=Atalhos.txt

for /f "usebackq delims=" %%a in ("%Arquivo%") do (
                                                   echo |set /p=%%a|clip
                                                   exit
                                                  )

 

Para copiar a segunda linha seria (repare no skip=1)

 

@echo off

set Arquivo=Atalhos.txt

for /f "skip=1 usebackq delims=" %%a in ("%Arquivo%") do (
                                                          echo |set /p=%%a|clip
                                                          exit
                                                         )

 

Para copiar as linhas seguintes seria apenas aumentar o número do skip, linha 3 = skip=2, linha 4 = skip=3, linha 5 = skip=4 e assim adiante....

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!