我可以查看目錄的子目錄並將特定副檔名的檔案複製到新資料夾嗎?

我可以查看目錄的子目錄並將特定副檔名的檔案複製到新資料夾嗎?

這裡是新手 - 我有一個終端腳本,它似乎無法在 Windows 上工作,無法在目錄中的子目錄中搜尋具有特定擴展名的所有文件,並將它們移動到新目錄。

find ./ -name '*.xlsx' -exec cp -prv '{}' \Documents\...' ";"

我想知道是否可以使用 MATLAB 或 Windows 腳本中的任何其他方式來完成相同的事情。我的最終目標是將所有這些 xlsx 檔案中的資料合併到一個檔案中。我在這裡先向您的幫助表示感謝。

答案1

要循環遍歷 cmd.exe 中的目錄:

for /r "C:\Your\Directory" %A in (*.xlsx) do (move /y "%A" "C:\New\Directory\%~nxA")

in/r循環FOR遍歷給定目錄中的所有檔案。 in/ymove取消詢問您是否可以移動檔案的提示。如果存在空格,最好在檔案/目錄路徑周圍使用引號。預設情況下,這將循環遍歷子資料夾。

參考:FOR 迴圈指令

如果您喜歡批次解決方案,我更喜歡使用以下變數進行設定:

@echo off

set "old=C:\Your\Directory"
set "new=C:\New\Directory"

for /r "%old%" %%A in (*.xlsx) do (
    move /y "%%A" "%new%\%%~nxA"
)

pause

(在我看來)批次處理與普通命令行的主要區別在於,當您可以返回並編輯變數而不必在同一文件中多次更改路徑時,調整會更容易一些。另請注意,您的參數會在批次檔中%A變更。%%A

相關內容