O pipe não funciona com o loop For no Windows

0

Eu tenho um comando que não está funcionando.

Aqui está:

mkdir \output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"

O que estou fazendo de errado?

    
por Ramin Melikov 02.03.2016 / 04:28

1 resposta

0

Primeiro, & é um e comercial. | é um pipe. O e comercial ( & ) permite executar vários comandos em uma única linha. O pipe ( | ) redireciona a saída de um comando para outro comando. Assim, o título da sua pergunta não reflete sua pergunta real.

Em segundo lugar, .\ é o diretório atual e \ é o diretório raiz. Tente usá-lo com o comando cd :

cd .\ não fará nada, pois irá "mudar" para o diretório atual.
cd \ irá levá-lo para a pasta raiz, não importa quantas pastas você tenha.

O problema é que você está usando diferentes pastas output em cada comando. Quando você mkdir \output , está criando uma pasta chamada output na raiz da unidade em que você está, como c:\output . Posteriormente, você referencia .\output que aponta para uma pasta output em seu diretório atual , como c:\users\myUserName\output .

Veja como seu comando deve ficar:

mkdir .\output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"

Além disso, você pode encontrar ajuda mais ampla no link

    
por 02.03.2016 / 23:41