tentando copiar arquivos com quatro ou menos caracteres no nome do arquivo com uma certa extensão para uma nova pasta. Eu tentei fazer isso por várias horas agora! ficando frustrado. Eu usei o comando copy e o curinga? e *
tentando copiar arquivos com quatro ou menos caracteres no nome do arquivo com uma certa extensão para uma nova pasta. Eu tentei fazer isso por várias horas agora! ficando frustrado. Eu usei o comando copy e o curinga? e *
Respostas:
Como AFH apontou nos comentários, um simples "COPY ????. Ext" funcionará em nomes de arquivos com quatro ou menos caracteres. Na correspondência de padrões no estilo glob em sistemas baseados em DOS, * significa "0 ou mais caracteres" e, aparentemente? significa zero ou um caractere. No entanto, certifique-se de entender que esse tipo de correspondência de padrão é feito no nível do aplicativo - ou seja, o Windows (e o DOS), passa a linha de comando exatamente como digitado no programa a ser executado. Se você digitar "????. Ext", é exatamente isso que o comando COPY vê.
Compare isso com outros shells com os quais trabalhei, como em un * x (bash, tcsh, etc), onde o interpretador de comandos primeiro expande todas as correspondências de padrões e passa a lista completa de arquivos para o comando. Ou seja, nessas conchas, se você digitar "copiar arquivo.?", O shell chama "cópia arquivo.1 arquivo.2 arquivo.3", "cópia" normalmente nunca vê o literal "arquivo".? argumento.
(E é por isso que minha primeira resposta original estava incorreta - testei-a com um comando que não estava expandindo a maneira como o CMD.EXE do Windows teria .. Apenas algo a ter em atenção!)
Não há nenhuma maneira no console / linha de comando normal do Windows (que não é o DOS, a propósito!) Fazer isso com um único comando por causa do caminho? e * funciona no Windows:? corresponde a um único caractere e * corresponde ao maior número possível. Nem permita que você especifique uma contagem. Mas, usando um arquivo em lotes para executar cada comando em sequência, você pode obter o mesmo efeito:
@echo off
copy "????.ext" "target folder"
copy "???.ext" "target folder"
copy "??.ext" "target folder"
copy "?.ext" "target folder"
Usando várias técnicas de arquivo em lote, você também pode modificá-lo para trabalhar com outros comprimentos de nome de arquivo ou usar pastas de destino diferentes, etc.
Além disso, nos sistemas operacionais Windows modernos, é provável que você tenha o VBScript disponível no Windows Script Host e, no Win8, deve ter o PowerShell, que permite uma lógica de programação muito mais extensa, como expressões regulares poderosas e assim por diante.