Синтаксическая ошибка около неожиданного токена '(' при попытке переместить файлы

Синтаксическая ошибка около неожиданного токена '(' при попытке переместить файлы

Поэтому я пытаюсь следовать решению из этой ветки:Команда 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

Связанный контент