【发布时间】:2018-04-20 17:04:37
【问题描述】:
我正在尝试使用 FOR 循环来创建一个批处理来检查目录中是否存在文件。我正在努力处理文件名中有空格的文件,如果可能的话,我不想使用 .txt 列表。所以这是我迄今为止测试过的。
@echo OFF
:: Variables
set Folder=D:\Test Folder
set Space=File Name With Space.txt
set NoSpace=FileNameWithoutSpace.txt
:: For Loop
FOR %%A in (%Space% %nospace%) do (
if exist "%Folder%\%%A" (
ECHO %%A exist
) else (
ECHO %%A doesn't exist
echo. )
)
这是重新打开回显时读取的内容。
(如果存在 "D:\Test Folder\File" (ECHO 文件存在) else (ECHO 文件 不存在回声。 ))
如果我使用这段代码:
@echo OFF
:: Variables
set Folder=D:\Test Folder
set Space="File Name With Space.txt"
set NoSpace=FileNameWithoutSpace.txt
:: For Loop
FOR %%A in (%Space% %nospace%) do (
if exist "%Folder%\%%A" (
ECHO %%A exist
) else (
ECHO %%A doesn't exist
echo. )
)
它将“IF”命令读作:
(如果存在 "D:\Test Folder\"File Name With Space.txt"" (ECHO "File Name With Space.txt" 存在) else (ECHO "File Name With Space.txt" 不存在回声。 ))
我做错了什么?
【问题讨论】:
-
试试
%~A(阅读set /?或cmd /?了解更多详情,我不记得是哪个了) -
哦,顺便说一句,说“谢谢”是discouraged on Stack Overflow(类似于维基百科)
标签: windows batch-file for-loop command-prompt