首页 > 解决方案 > 检查批处理脚本中是否存在任何文件,但不存在目录

问题描述

我有以下目录结构。

dir1
dir1\subdir
backup

我想将 dir1 下的文件而不是 subdir 移动到备份目录。

if exist dir1\*.* move dir1\*.* backup

如果 dir1 下有任何文件,则脚本运行正常,但如果 dir1 为空,则会收到错误消息:

文件名、目录名或卷标语法不正确。

问题if exist dir1\*.*总是返回 true,因为有dir1\subdir.

有没有办法避免这个错误信息?

标签: batch-filecmd

解决方案


使用 FOR 命令迭代目录中的文件。如果目录中没有文件,那么它将永远不会执行 DO。

for %%G IN (dir1\*.*) do move "%%G" backup

另一种选择。

>nul 2>nul dir /a-d /b "dir1\*" && move dir1\*.* backup

推荐阅读