-
Posts
13 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que ASam postou
-
@ricardo_br Perfeito! Testei em alguns arquivos aqui e estão conforme é necessário. Muito Obrigado! Não imaginei que seria algo tão complexo
-
@ricardo_br Quase perfeito, só quando eu tenho linhas em branco no arquivo inicial(posições C1 e C2 por exemplo), ele aparece a mensagem "ECHO est desativado." Ex(primeira coluna é o arquivo inicial e segunda coluna o arquivo final-posições C1 e C2): A1 A1 A2 B1 A3 ECHO est desativado. A4 D1 A5 E1 A6 F1 A7 G1 A8 H1 A9 A2 A10 B2 A11 ECHO est desativado. A12 D2 B1 E2 B2 F2 B3 G2 B4 H2 B5 A3 B6 B3 B7 C3 B8 D3 B9 E3 B10 F3 B11 G3 B12 H3 A4 B4 C3 C4 C4 D4 C5 E4 C6 F4 C7 G4 C8 H4 C9 A5 C10 B5 C11 C5 C12 D5 D1 E5 D2 F5 D3 G5 D4 H5 D5 A6 D6 B6 D7 C6 D8 D6 D9 E6 D10 F6 D11 G6 D12 H6 E1 A7 E2 B7 E3 C7 E4 D7 E5 E7 E6 F7 E7 G7 E8 H7 E9 A8 E10 B8 E11 C8 E12 D8 F1 E8 F2 F8 F3 G8 F4 H8 F5 A9 F6 B9 F7 C9 F8 D9 F9 E9 F10 F9 F11 G9 F12 H9 G1 A10 G2 B10 G3 C10 G4 D10 G5 E10 G6 F10 G7 G10 G8 H10 G9 A11 G10 B11 G11 C11 G12 D11 H1 E11 H2 F11 H3 G11 H4 H11 H5 A12 H6 B12 H7 C12 H8 D12 H9 E12 H10 F12 H11 G12 H12 H12 E para evitar que ele processar novamente os arquivos já convertidos, poderia colocar eles na pasta TXT(para os .TXT) e CSV(para os .CSV)?
-
@ricardo_br Esse já ficou bem complexo (vou levar algum tempo pra entender tudo, mas fiz alguns testes(com arquivos reais) e tem algumas questões: Se eu executar novamente o batch com algum arquivo (txt ou csv) na pasta ele modifica esses arquivos, inclusive adicionando mais linhas. - Isso é só no final mover estes arquivos para outra pasta. Nos meus arquivos reais vou ter o caractere "&" seguido de um número (1,2,3,4,5,6) - normalmente nas posições A1,B1,C1,D1 e nas duas ultimas posições ocupadas (mas pode acontecer de "&" não aparecer em nenhuma posição) e quando faz a conversão aparece a mensagem: '1' não é reconhecido como um comando interno e no arquivo gerado, no lugar de &1, aparece: ECHO est desativado. Eu não consigo trocar esse caractere "&" por outro no meu arquivo original e onde ele aparece eu preciso mantê-lo. Nem todos os meus arquivos vão ter 96 posições, então vão ter linhas em branco no arquivo inicial. Mas após convertido eu queria apagar SOMENTE as linhas em branco que ficarem no final(após o ultimo número). As linhas em branco que porventura ficarem no meio do arquivo, eu preciso manter. Teste.rar
-
@ricardo_br se der pra colocar ele dentro de uma pasta "Backup" seria interessante Aparentemente assim funcionou a conversão (testei com 2 arquivos só), dai pensei em mover pra um backup esse arquivo já renomeado, mas sem alteração. (só não sei como fazer) Ex: O batch.bat, a Listadenomes.txt e os arquivos .Wxx todos na pasta D:\, o backup iria para D:\Backup\ @echo off SetLocal EnableDelayedExpansion :: Arraste a pasta onde estão os arquivos para o batch :: Informe aqui o arquivo com a lista de nomes: set "Lista=Listadenomes.txt" if exist "%~1" (if not exist "%~1\" exit) else (exit) set "Pasta=%~1" pushd "%Pasta%" for /f "tokens=1,2 usebackq" %%a in ("%Lista%") do if /i exist "%%a" ren "%%a" "%%b.tmp" for /f "delims=" %%a in ('dir /b *.tmp ^|find /i /v "%Lista%"') do ( set "arquivo=%%a" call :ReOrganizar "%%~a" ) echo Fim Reorganizar pause popd exit :ReOrganizar echo ReOrganizar SETLOCAL DisableDelayedExpansion set count=1 for /f "usebackq delims=" %%a in (`"findstr /n ^^ %arquivo%"`) do ( set "var=%%a" SETLOCAL ENABLEDELAYEDEXPANSION set "var=!var:*:=!" set var[!count!]= !var! set /a count=!count!+1 ) ::Colocar comando para mover %arquivo% para Backup for /l %%a in (1,1,12) do ( set contador= %%a for /l %%b in (!contador!,12,96) do ( echo !var[%%b]! >> %arquivo%.txt ) ) goto :EOF
-
@ricardo_br é isso mesmo, só o primeiro passo que acho mais interessante deixar o .bat dentro da pasta onde vão estar o arquivo "ListadeNomes.txt" e os arquivos que vão ser trabalhados. ( assim eu crio um atalho pra esse .bat e só clico nele.
-
@ricardo_br é quase isso, só na hora de organizar que não posso organizar em ordem sequencial, eu preciso organizar seguindo a lógica de transformar (tabela 01) o que está em linha, em colunas (uma transposição de matriz) independente do valor que está naquela posição (por isso aqueles loop s no código que postei). tabela 01 1 2 3 4 5 6 7 8 9 10 11 12 a a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 b b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 c c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 d d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 e e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 f f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 g g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 g11 g12 h h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 posições arquivo .wxx posições arquivo .txt a1 a1 a2 b1 a3 c1 a4 d1 a5 e1 a6 f1 a7 g1 a8 h1 a9 a2 a10 b2 a11 c2 a12 d2 b1 e2 b2 f2 b3 g2 b4 h2 b5 a3 b6 b3 b7 c3 b8 d3 b9 e3 b10 f3 b11 g3 b12 h3 c1 a4 c2 b4 c3 c4 c4 d4 c5 e4 c6 f4 c7 g4 c8 h4 c9 a5 c10 b5 c11 c5 c12 d5 d1 e5 d2 f5 d3 g5 d4 h5 d5 a6 d6 b6 d7 c6 d8 d6 d9 e6 d10 f6 d11 g6 d12 h6 e1 a7 e2 b7 e3 c7 e4 d7 e5 e7 e6 f7 e7 g7 e8 h7 e9 a8 e10 b8 e11 c8 e12 d8 f1 e8 f2 f8 f3 g8 f4 h8 f5 a9 f6 b9 f7 c9 f8 d9 f9 e9 f10 f9 f11 g9 f12 h9 g1 a10 g2 b10 g3 c10 g4 d10 g5 e10 g6 f10 g7 g10 g8 h10 g9 a11 g10 b11 g11 c11 g12 d11 h1 e11 h2 f11 h3 g11 h4 h11 h5 a12 h6 b12 h7 c12 h8 d12 h9 e12 h10 f12 h11 g12 h12 h12 Isso eu nem tinha pensado, mas pra esse problema não vai servir...mas sabe me dizer se consigo utilizar um batch pra gerar códigos de barras usando somente o excel e mandar pra impressora?(hj uso o excel para escrever os nomes e o labeljoy para gerar e imprimir essas etiquetas). Não sei se é possível abrir e controlar o programa por batch?
-
@ricardo_br usei as colunas só como demonstração de como é, e como preciso. O que eu tenho é isso: 1 2 3 4 5 6 7 8 9 10 11 12 A 1 9 17 25 33 41 49 57 65 73 81 89 B 2 10 18 26 34 42 50 58 66 74 82 90 C 3 11 19 27 35 43 51 59 67 75 83 91 D 4 12 20 28 36 44 52 60 68 76 84 92 E 5 13 21 29 37 45 53 61 69 77 85 93 F 6 14 22 30 38 46 54 62 70 78 86 94 G 7 15 23 31 39 47 55 63 71 79 87 95 H 8 16 24 32 40 48 56 64 72 80 88 96 No arquivo de texto está escrito em linhas, e eu preciso 'converter' para colunas. No arquivo de exemplo que coloquei está escrito assim: 1 9 17 25 33 41 49 57 65 73 81 89 2 10 ... eu quero ler esse arquivo e organizar assim: 1 2 3 4 5 6 7 8 9 10 11 12 13
-
1 1 9 2 17 3 25 4 5 41 6 49 7 57 8 65 9 73 10 81 11 12 2 13 10 14 18 15 26 16 34 17 42 18 50 19 58 20 66 21 74 22 82 23 24 3 25 11 26 19 27 27 28 35 29 43 30 51 31 59 32 67 75 34 83 35 36 4 37 12 38 20 39 28 40 36 41 44 42 52 43 60 44 68 45 76 46 84 47 48 5 49 13 50 21 51 29 52 37 53 45 54 53 55 61 56 69 57 77 58 85 59 60 6 61 14 62 22 63 30 64 38 65 46 66 54 67 62 68 70 69 78 70 86 71 72 7 73 15 74 23 75 31 76 39 77 47 78 55 79 63 80 71 81 79 82 87 83 84 8 85 16 86 24 87 32 88 40 48 56 64 72 80 88 A linha em branco seria reorganizada junto com as outras, eu não posso suprimir ela (por exemplo o nº 33 - estaria entre 25 e 31 na coluna da esquerda) já os números de 89 a 96(coluna da esquerda), como na organização(coluna da direita) não tem nenhum outro numero após, eu posso apagar(não preciso da linha em branco)
-
Esses números se referem a uma matriz com 96 posições, sendo 8(de A a F) linhas e 12(de 1 a 12) colunas. O arquivo está escrito de A1 a A12,B1 a B12 e assim por diante(em linhas). Preciso escrever de A1 a F1, B2 a B12 e assim por diante(em colunas): Como está Como Preciso 1 1 9 2 17 3 25 4 33 5 41 6 49 7 57 8 65 9 73 10 81 11 89 12 2 13 10 14 18 15 26 16 34 17 42 18 50 19 58 20 66 21 74 22 82 23 90 24 3 25 11 26 19 27 27 28 35 29 43 30 51 31 59 32 67 33 75 34 83 35 91 36 4 37 12 38 20 39 28 40 36 41 44 42 52 43 60 44 68 45 76 46 84 47 92 48 5 49 13 50 21 51 29 52 37 53 45 54 53 55 61 56 69 57 77 58 85 59 93 60 6 61 14 62 22 63 30 64 38 65 46 66 54 67 62 68 70 69 78 70 86 71 94 72 7 73 15 74 23 75 31 76 39 77 47 78 55 79 63 80 71 81 79 82 87 83 95 84 8 85 16 86 24 87 32 88 40 89 48 90 56 91 64 92 72 93 80 94 88 95 96 96 Mas pode acontecer de alguma posição não ser preenchida, então fica uma linha em branco naquela posição(eu preciso mantê-la em branco - a menos que não tenha nenhum numero após quando eu faço a conversão)
-
Olá, algum tempo atrás pedi ajuda para renomear arquivos a partir de uma lista. Agora preciso fazer alterações dentro destes arquivos(alguns arquivos preciso somente reorganizar as linhas seguindo uma lógica, outros preciso verificar o nome e inserir as linhas de um arquivo no outro(podemos testar isto com os arquivos do anexo!, outros preciso escrever algo na linha - Acredito que solucionando a reorganização consigo finalizar o restante). Vamos a primeira questão: O código que fiz para reorganizar as linhas funciona(apesar de aparecer a mensagem "Atingido o nível máximo de recursão local.") mas não sei como fazer para ele identificar todos os arquivos da pasta e fazer essa organização para todos eles (o ideal seria executar essa reorganização junto ou logo após renomear os arquivos.) Código para Renomear os arquivos(os arquivos a serem renomeados e o arquivo de lista estão na mesma pasta): @echo off set Lista=Listadenomes.txt for /f "tokens=1,2 usebackq" %%a in ("%Lista%") do if /i exist "%%a" ren "%%a" "%%b.tmp" exit Código para Organizar as linhas dentro dos arquivos(Este código que não sei como fazer para identificar todos os arquivos .tmp na pasta e reorganizar salvando em .txt. Obs: Cada linha é um numero, não necessariamente sequencial, por isso usei os loops para organizar da forma como preciso. Obs2: Em alguns casos pode ter o caractere "&" antes do número (também é um problema, pois ¨&¨ some juntamente com o que estiver após - pelo que pesquisei/entendi ele faz parte de comandos bat) @echo off SETLOCAL DisableDelayedExpansion SET count=1 FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ %userprofile%\desktop\Exemplos\NOME1LOTEMESANO.tmp"`) do ( set "var=%%a" SETLOCAL ENABLEDELAYEDEXPANSION set "var=!var:*:=!" set "var!count!=!var!" SET /a count=!count!+1 ) set countloopb=0 :loopb set /a countloopb=%countloopb%+1 set countloopa=0 SET /a count=%countloopb% :loopa set /a countloopa=%countloopa%+1 set "requisicao=var!count!" set /a "requisicao=!requisicao!" set /a count=%count%+12 if %requisicao%==0 echo(%/n% >> NOME1LOTEMESANO.txt if %requisicao% neq 0 echo(!requisicao! >> NOME1LOTEMESANO.txt if %countloopa% neq 8 goto loopa if %countloopb% neq 12 goto loopb pause exit Estou usando como artificio renomear para um arquivo .tmp no primeiro .bat e depois para o .txt no segundo .bat. Mas poderia ser 1 bat só para fazer tudo(não preciso do arquivo .tmp). Anexo os arquivos de exemplo(necessário retirar ".txt" dos arquivos "Arquivo.W01" e "Arquivo.W02"). Ao executar o primeiro .bat vão ser gerados os arquivos para o segundo .bat (somente para o "Arquivo.W01"). OBS: Caso tenha linhas em branco, pelo menos hoje eu preciso manter em branco(sem nada), mas depois eu vou precisar apagar somente as que estão no final do arquivo após a reorganização. Listadenomes.txt Arquivo.W01.txt Arquivo.W02.txt
-
Vou tentar fazer esse agendamento e fazer alguns testes. Obrigado pela ajuda!
-
@ricardo_br Nossa! Funciona perfeitamente, muito obrigado! No caso eu tenho tanto o arquivo "ListaDeNomes.txt" como os arquivos ".Wxx" salvos na mesma pasta, e sempre estou acrescentando mais arquivos ".Wxx" e acrescentando ele na "ListaDeNomes.txt" - Isto é feito quase que instantaneamente por outro software. Tem alguma forma de programar esse batch pra executar automaticamente(coisa de 5-10min) assim que for salvo um arquivo na pasta? (ou deixar o batch em algum local e executar ele sem jogar a pasta no batch?) E já aproveitando, gostaria de aprender um pouco sobre como funcionam os comandos(onde posso estudar e entende-los?(Livros, sites, etc) Vou precisar fazer outras alterações no conteúdo interno deles (reorganizar)
-
Olá! Estou procurando alguma forma de renomear arquivos usando batch mas não encontro algo tão especifico e não entendo muito. Se alguém puder ajudar: Tenho 1 arquivo de texto (Listadenomes.txt) e dentro deste arquivo tenho duas colunas(Na verdade é um nome um espaço e outro nome). Na primeira coluna tenho um nome de Arquivo.Wxx (onde xx é um numero de 01 a 99) e na segunda coluna tenho um nome. Na mesma pasta tenho vários arquivos com os nomes da primeira coluna (ex: Arquivo01.W01), eu quero renomear todos os arquivos para o nome da segunda coluna (ex: 13122021) e acrescentar .txt no final deste arquivo renomeado. vou anexar um exemplo com estes arquivos. (precisei adicionar ".txt" no Arquivo01.W01 para poder anexar). Arquivo.W01.txt Listadenomes.txt
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