ファイルを移動中に予期しないトークン '(' の近くで構文エラーが発生しました

ファイルを移動中に予期しないトークン '(' の近くで構文エラーが発生しました

そこで、このスレッドの解決策に従おうとしています:各ファイル用のフォルダを作成し、ファイルをフォルダに移動するCMDコマンドそのスレッドの OP がやりたかったのと同じことをしたいからです。

そのスレッドを見つける前に、手動でフォルダーを作成しました。

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

GNU bash で Windows バッチ コマンドを実行しようとしているようです。これが機能しない理由です。「Saurabh P Bhandari」が提案したように、このリンクから次のスニペットを使用してください。 https://unix.stackexchange.com/questions/219991/how-do-i-create-a-directory-for-every-file-in-a-parent-directory 最初に親フォルダーに cd することを確認してください。

for x in ./*.txt; do
  mkdir "${x%.*}" && mv "$x" "${x%.*}"
done

関連情報