2011-09-28 92 views

回答

3

使用上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 
) 
+0

謝謝!完美的作品。我假設*表示當前目錄。不確定你用more()來執行多個命令是什麼意思。但對於我正在進行的工作而言,這不是必需的 – IamPolaris

+0

Yup'*'表示當前(它是一個文件過濾器匹配),你也可以作爲參數傳入目錄(將'*'更改爲'%1'並且調用爲'​​\ windows \ *' - 添加了一個多行和arg示例 – Rudu

0

大廈在Rudu的回答,並假設script.py位於同一個目錄(比如C:\Test)作爲下面的批處理腳本,您還可以遞歸運行script.pyC:\Test目前所有的目錄:

@echo off 
for /d /r %%d in (*) do (
    echo Processing: %%d 
    script.py "%%d" 
) 

cmd.exeFOR幫助似乎並沒有提到它支持多種修飾符,但它適用於Windows 7.

+0

您是否可以稍微更改此腳本來清除目錄(刪除所有文件,但保留目錄結構) – IamPolaris

+0

要從目錄中遞歸刪除所有文件,並保持目錄結構不變:'del/s/q/f 「C:\ Test Area \ Target」'('/ s'遍歷目錄樹,'/ q'不會提示你確認,'/ f'會刪除只讀文件) –

+0

@BoReal答案是給了我一些奇怪的行爲與TortoiseSVN我運行乾淨的文件(輸出文件夾)說,它後來被「阻塞」(輸出文件夾和子目錄在源代碼管理下)如果我執行一個烏龜乾淨的目錄,它說,文件夾不是直接的工作副本ORY。 我的猜測:刪除隱藏的.svn文件夾中的文件?聽起來對我來說是正確的... – IamPolaris

相關問題