批处理文件-如果文件夹为空,请更改标题

时间:2019-07-14 21:00:14

标签: batch-file

我正在尝试编写一个批处理文件,该文件将根据文件夹内容更改命令提示符窗口的标题。因此,如果文件夹为空,则应该说 Empty (空),如果不是,则为 Full

我仅在一种情况下尝试过,但是它不起作用:

@echo on
for /F %%i in ('dir /b "C:\folder\*.*"') do (
    TITLE Empty
)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

我会建议以下内容,(在必要时修改C:\folder之后)

这将检查是否有文件:

@Dir /B/A-D "C:\folder">NUL 2>&1&&(Title Full)||Title No files

这将检查是否有文件或目录:

@Dir /B/A "C:\folder">NUL 2>&1&&(Title Full)||Title Empty

答案 1 :(得分:0)

首先,我建议使用@ECHO OFF而不是@ECHO ON,这是多余的,它会导致打印很多无用的输出。 \*.*命令的DIR后缀也是隐式给出的,因此是不必要的。

您正确使用了FOR循环,但是您至少需要事先将标题设置为Empty

@ECHO OFF
TITLE Empty
FOR /F %%i IN ('DIR /B "C:\folder"') DO (
    TITLE Full
)

不幸的是,当目录为Full时,这将导致标题的明显闪烁。

更好地存储目录状态并相应地设置标题。

@ECHO OFF
FOR /F %%i IN ('DIR /B "C:\folder"') DO (
    SET full=true
)
IF "%FULL%"=="true" (
    TITLE Full
) ELSE (
    TITLE Empty
)