2017-06-22 61 views
0

下面的文件夾中刪除命令的輸出沒有被重定向到一個文件中預期:如何從RD批處理命令的輸出重定向(不帶/ S/Q)

RD folder >> logfile.txt 

這僅適用於當文件夾和所有子-folders和文件使用刪除:

RD folder /S /Q >> logfile.txt 

然而,意圖是隻刪除一個空文件夾,沒有任何文件,並重定向所有輸出到一個文件(錯誤消息和所有)。

這怎麼辦?

整批文件上下文是刪除用戶配置文件備份所有空文件夾,如下所示:

set Root=e:\users\somebody 
for %%A in (Desktop Documents Downloads Favorites Install Music OneDrive Pictures Videos) do (
    if exist "%Root%\%%A\" (
     echo %%A ------- >> Backuplog.txt 
     for /F "tokens=*" %%B in ('dir %Root%\%%A /ad /b /s ^| sort /r') do rd %%B >> Backuplog.txt 
    ) 
) 

感謝

回答

0

rd delete一個空文件夾時,不產生輸出,所以這個結果是預料。但是,您可以使用條件運算符&&(先前的命令成功)和||(先前的命令失敗)。所以它可能是

set "Root=e:\users\somebody" 
for %%A in (Desktop Documents Downloads Favorites Install Music OneDrive Pictures Videos) do (
    if exist "%Root%\%%A\" (
     echo %%A ------- >> Backuplog.txt 
     for /F "tokens=*" %%B in ('dir %Root%\%%A /ad /b /s ^| sort /r') do rd "%%B" 2>NUL && (>>Backuplog.txt echo succesful) || (>>Backuplog.txt %%B echo failed) 
    ) 
)