batch-file - 批处理 - 检查目录是否不存在不起作用
问题描述
我有以下批处理脚本:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SET directoryContainsFiles=%~f1
ECHO %directoryContainsFiles%
IF NOT EXIST directoryContainsFiles (
ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
EXIT /B 1
)
rename_media_files.cmd "G:\Projects\Rename Batch Script\testfolder\source"
当我使用绝对存在的目录运行命令(在 cmd.exe - Windows 10 64 位上)时, directoryContainsFiles
gets echo
d 正确(G:\Projects\Rename Batch Script\testfolder\source
)但该IF NOT EXIST
子句不起作用,因为我总是在里面得到错误消息:ERROR: 1. Argument ...
.
我还尝试在目录路径中使用结束反斜杠调用脚本:rename_media_files.cmd "G:\Projects\Rename Batch Script\testfolder\source\"
我还尝试(有和没有结束反斜杠)来检查一个 nul 文件:
IF NOT EXIST directoryContainsFiles/nul
.
怎么了?
感谢你的帮助。
解决方案
试试这个修改:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SET "directoryContainsFiles=%~f1"
ECHO=%directoryContainsFiles%
IF NOT EXIST "%directoryContainsFiles%\" (
ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
EXIT /B 1
)
但是,我首先看不到SET
变量的理由:
@ECHO OFF
ECHO=%~f1
IF NOT EXIST "%~f1\" (
ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
EXIT /B 1
)
推荐阅读
- r - 裁剪多个栅格 (ASCII)
- arrays - 给定一个包含“前 n”个自然数的数组,其中一个元素缺失和一个重复元素。找出两个数字
- opengl - 设置较小的opengl窗口宽度,如64
- javascript - 上下文菜单事件
- java - JavaFX GrowableDataBuffer,画布性能打嗝
- c# - 使用 C# 从 SQLite 中读取日期时间
- c# - 如何通过vb中的c#编码将数据添加到sql server中的时间戳列
- javascript - Javascript,在离开页面之前做一些事情
- python - 正则表达式 html 动态表
- php - 通过 mysql 查询使用公式:错误