以下文件夹删除命令输出未按预期重定向到文件中:
RD folder >> logfile.txt
仅当使用以下命令删除文件夹AND所有子文件夹和文件时才有效:
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 :(得分:0)
rd
不会产生任何输出,因此需要此结果。但是,您可以使用条件运算符&&
(上一个命令成功)和||
(先前的命令失败)。所以它可能是
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)
)
)