2016-12-14 43 views
0

什麼語法可以讓我刪除文件夾和創建它,而不管它之前(in)存在?如果存在文件夾rmdir文件夾&& mkdir文件夾將不會執行任何命令之後&&

if exist folder rmdir folder && mkdir folder 

將無法​​正常工作。 &&&||,| ...

哪一個是正確的語法呢?

操作系統:Windows 2012 外殼內容:cmd.exe *

PS我可以接受基於PS的答案,只要滿足兩個條件。 1)它必須從cmd.exe開始2)如果遇到任何錯誤(如缺少權限),它必須給cmd標準輸出提供全部錯誤。

+1

括號。告訴CMD什麼是你的命令。 '(如果存在文件夾rmdir文件夾)&(mkdir文件夾)'我想。 – 2016-12-14 21:02:04

+2

'rmdir文件夾&mkdir文件夾'你不需要測試(它使用電池電量來進行額外的磁盤訪問並且速度很慢)我假定文件夾爲空或者rmdir的語法錯誤,請參閱'rmdir /?'If folder在不空的情況下,您可以使用'rd/s/q文件夾' – 2016-12-14 21:05:44

+0

這兩種解決方案都像一個魅力!即使當文件夾實際上是符號鏈接;)請把它變成答案,所以我可以接受它,並解釋爲什麼單個'&',而不是從問題的代碼(爲了完整起見)的雙重一個 –

回答

1

由於您使用rmdir而沒有/S開關,我假設感興趣的文件夾是空的,那麼爲什麼要刪除並重新創建它?你可以簡單地創建並抑制的情況下,錯誤信息已經存在,如:

mkdir "folder" 2> nul 

這種變異保持當然所有文件夾的屬性和所有者。


如果你堅持刪除並重新創建該文件夾,使用此:

rmdir "folder" 2> nul & mkdir "folder" 

這種變異銷燬所有文件夾的屬性和所有者。


如果該文件夾是保證是空的,你需要的/S開關rmdir; /Q也是有用的,以避免被提示真正刪除文件夾,如:

rmdir /S /Q "folder" & mkdir "folder" 
+0

ouch。有問題的文件夾實際上是作爲「mklink/D」創建的符號鏈接。所以它總是可以用rmdir刪除。但是如果沒有任何東西可以刪除,rmdir會抱怨。 –

+0

這就是'2> nul'部分的用途 - 在情況下抑制rmdir的錯誤... – aschipfl

相關問題