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