這裡是新手 - 我有一個終端腳本,它似乎無法在 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/y
會move
取消詢問您是否可以移動檔案的提示。如果存在空格,最好在檔案/目錄路徑周圍使用引號。預設情況下,這將循環遍歷子資料夾。
參考: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