Então, estou tentando seguir a solução deste tópico:Comando CMD para criar uma pasta para cada arquivo e mover o arquivo para a pastacomo eu quero fazer a mesma coisa que o OP desse tópico queria.
Criei manualmente as pastas antes de encontrar esse tópico.
Porém, quando tento for %i in (*) do move "%i" "%~ni"
colocar cada arquivo em sua respectiva pasta, recebo o seguinte erro:
bash: syntax error near unexpected token `('
Meus arquivos são nomeados assim: x01.sql, x02.sql, x03.sql... As pastas, correspondentemente, são x01, x02, x03 e assim por diante. Não há espaços, caracteres especiais ou não ASCII em seus nomes. Eu uso o GNU bash versão 5.0.7(1).
Como resolvo o erro e faço com que os arquivos sejam movidos cada um para sua pasta?
Responder1
GNU Bash e Windows CMD são entidades diferentes. Esse Comando CMD para criar uma pasta para cada arquivo e mover o arquivo para a pastaé para Windows CMD.
Para GNU Bash, você pode seguiresse
Responder2
parece que você está tentando executar o comando em lote do Windows no GNU bash. é por isso que não está funcionando. como sugerido por "Saurabh P Bhandari", use os seguintes trechos deste link, https://unix.stackexchange.com/questions/219991/how-do-i-create-a-directory-for-every-file-in-a-parent-directory certifique-se de inserir o cd na pasta pai primeiro.
for x in ./*.txt; do
mkdir "${x%.*}" && mv "$x" "${x%.*}"
done