我有一個名爲script.py
的python腳本,我想運行在特定目錄內的所有目錄中。使用批處理腳本執行此操作的最簡單方法是什麼?批處理腳本:在一個文件夾中的所有目錄上運行python腳本
我的假設是FOR命令的一些用法,但我不能完全作任何線索使用下面的命令來解決這個問題...
我有一個名爲script.py
的python腳本,我想運行在特定目錄內的所有目錄中。使用批處理腳本執行此操作的最簡單方法是什麼?批處理腳本:在一個文件夾中的所有目錄上運行python腳本
我的假設是FOR命令的一些用法,但我不能完全作任何線索使用下面的命令來解決這個問題...
使用上for的/ d操作:
for /D %%d in (*) do script.py %%d
這假定您只需要執行每個目錄的一個命令(script.py %%d
),如果您需要執行更多使用大括號()
。另外我猜測首先需要一個執行引擎,但不知道它是什麼。
多行例如:
for /D %%d in (%1) do (
echo processing %%d
script.py %%d
)
大廈在Rudu的回答,並假設script.py
位於同一個目錄(比如C:\Test
)作爲下面的批處理腳本,您還可以遞歸運行script.py
在C:\Test
目前所有的目錄:
@echo off
for /d /r %%d in (*) do (
echo Processing: %%d
script.py "%%d"
)
從cmd.exe
的FOR
幫助似乎並沒有提到它支持多種修飾符,但它適用於Windows 7.
您是否可以稍微更改此腳本來清除目錄(刪除所有文件,但保留目錄結構) – IamPolaris
要從目錄中遞歸刪除所有文件,並保持目錄結構不變:'del/s/q/f 「C:\ Test Area \ Target」'('/ s'遍歷目錄樹,'/ q'不會提示你確認,'/ f'會刪除只讀文件) –
@BoReal答案是給了我一些奇怪的行爲與TortoiseSVN我運行乾淨的文件(輸出文件夾)說,它後來被「阻塞」(輸出文件夾和子目錄在源代碼管理下)如果我執行一個烏龜乾淨的目錄,它說,文件夾不是直接的工作副本ORY。 我的猜測:刪除隱藏的.svn文件夾中的文件?聽起來對我來說是正確的... – IamPolaris
謝謝!完美的作品。我假設*表示當前目錄。不確定你用more()來執行多個命令是什麼意思。但對於我正在進行的工作而言,這不是必需的 – IamPolaris
Yup'*'表示當前(它是一個文件過濾器匹配),你也可以作爲參數傳入目錄(將'*'更改爲'%1'並且調用爲'\ windows \ *' - 添加了一個多行和arg示例 – Rudu