Estou em uma situação em que quero que um arquivo em lote do Windows copie um arquivo específico de uma pasta com topologia conhecida, mas sem saber quais são os nomes exatos das pastas. Então, um caminho do formulário,
Inbox\XXX\YYY\file.txt
, onde os nomes das pastas XXX e YYY podem variar arbitrariamente. Podemos assumir que as subpastas são exclusivas em ambos os níveis (nenhuma outra subpasta naquele local). Existe alguma maneira de fazer isso?
relate perguntas
-
Como desativar a aceleração do mouse em um touchpad de precisão do Windows?
-
renomear em massa conjuntos de arquivos de imagem
-
Qual seria o equivalente em lote do argumento "pass" do Python?
-
Comunique-se com o daemon do Docker no Windows
-
atalho do shell da área de trabalho no painel lateral do explorer
cmd.exe
Os curingas só podem ser usados no último elemento de um caminho. Isso significa que você não pode usar dois curingas para pastas diferentes de um caminho. Temos que percorrer o sistema de arquivos por outros meios para os quais em cmd há
where /R
for files,for /D /R
for folders e anddir /S
for both . Infelizmente cmd.exe também não tem substituição de comando e devemos usar um loop for para acessar o caminho encontrado:Para não depender da sua exclusividade e nos proteger contra arquivos existentes inesperadamente, podemos adicionar uma saída após a cópia ter sido feita em um script .bat:
PowerShell
Caracteres curinga em caminhos são suportados perfeitamente:
Bash/caixa ocupada
O Bash também suporta curingas. No Windows, ele está disponível, por exemplo, em um pequeno busybox autônomo de ~660 KB :