batch-file - 检查批处理脚本中是否存在任何文件,但不存在目录
问题描述
我有以下目录结构。
dir1
dir1\subdir
backup
我想将 dir1 下的文件而不是 subdir 移动到备份目录。
if exist dir1\*.* move dir1\*.* backup
如果 dir1 下有任何文件,则脚本运行正常,但如果 dir1 为空,则会收到错误消息:
文件名、目录名或卷标语法不正确。
问题if exist dir1\*.*
总是返回 true,因为有dir1\subdir
.
有没有办法避免这个错误信息?
解决方案
使用 FOR 命令迭代目录中的文件。如果目录中没有文件,那么它将永远不会执行 DO。
for %%G IN (dir1\*.*) do move "%%G" backup
另一种选择。
>nul 2>nul dir /a-d /b "dir1\*" && move dir1\*.* backup
推荐阅读
- javascript - 将输入数据检索到数组中,但给每个元素一个长度
- gcc - gcc 的 __builtin_popcountll 是什么意思?
- java - java android中通用异常的Catch声明
- kubernetes - Traefik2.4:使用不存在的解析器:inwx
- azure - Apache Spark 在哪里对输出进行压缩?
- django - 如果 request.method == 'POST' 有什么问题
- javascript - 我想在引导模式中显示进度条,并且我的模式正确显示,但其中的进度条没有显示
- java - Spring Boot 覆盖来自其他位置文件的 prod 属性
- android - startActivityForResult() 弃用。我目前正在通过谷歌学习谷歌安卓应用基础课程;
- python - 使用RFECV变量排除后,得到了较好的MSE,但测试结果比变量排除前差很多