我正在尝试编写一个批处理文件,该文件将根据文件夹内容更改命令提示符窗口的标题。因此,如果文件夹为空,则应该说 Empty (空),如果不是,则为 Full 。
我仅在一种情况下尝试过,但是它不起作用:
@echo on
for /F %%i in ('dir /b "C:\folder\*.*"') do (
TITLE Empty
)
有人可以帮忙吗?
答案 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
)