所以我試圖遵循這個線程的解決方案: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 確保您首先進入父資料夾。
for x in ./*.txt; do
mkdir "${x%.*}" && mv "$x" "${x%.*}"
done