Поэтому я пытаюсь следовать решению из этой ветки:Команда CMD для создания папки для каждого файла и перемещения файла в папкутак как я хочу сделать то же самое, что хотел автор этой ветки.
Я вручную создал папки, прежде чем нашел эту ветку.
Однако при попытке for %i in (*) do move "%i" "%~ni"
поместить каждый файл в соответствующую папку возникает следующая ошибка:
bash: syntax error near unexpected token `('
Мои файлы называются так: x01.sql, x02.sql, x03.sql... Папки, соответственно, x01, x02, x03 и т. д. В их именах нет пробелов, специальных или не-ASCII символов. Я использую GNU bash версии 5.0.7(1).
Как устранить ошибку и переместить файлы каждый в свою папку?
решение1
GNU Bash и Windows CMD — это разные сущности. Это Команда CMD для создания папки для каждого файла и перемещения файла в папкудля Windows CMD.
Для GNU Bash вы можете следоватьэтот
решение2
похоже, вы пытаетесь запустить пакетную команду Windows в GNU bash. Вот почему это не работает. как предложил "Saurabh P Bhandari", используйте следующие фрагменты по этой ссылке, https://unix.stackexchange.com/questions/219991/how-do-i-create-a-directory-for-every-file-in-a-parent-directory убедитесь, что вы сначала перешли в родительскую папку.
for x in ./*.txt; do
mkdir "${x%.*}" && mv "$x" "${x%.*}"
done