当文件夹中包含外来字符时,如何测试目录是否存在

问题描述 投票:0回答:1

我想知道当文件夹包含外来字符时是否可以测试目录的存在。我一直在努力解决这个问题,但没有找到解决方案,也没有得出结论,为什么在从批处理文件内部进行测试时这不起作用。 有趣的是,只有在使用变量进行测试时才会失败。 有人有什么想法吗? 谢谢!

这是我用于分析的批处理文件示例:

@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
CLS
CHCP 65001
SET "Folder=%~1"
IF EXIST "C:\μTorrent Pro" ECHO Folder present & ::This line actually works
IF EXIST %Folder% ECHO Folder present & ::This line fails
windows batch-file
1个回答
0
投票

你有一个错字。您需要使用

SET "Folder=%~0"
来获取脚本的当前文件路径。如果您需要脚本所在的目录(“文件夹”),请使用:
SET "Folder=%~f0"

%0
是脚本本身。
%1
是第一个 CLI 参数。
%2
第二个,依此类推。
~
从输入中删除引号。您应该始终在 CLI 上使用引号来处理路径名中的空格。因此,如果您使用
my_batch.cmd "C:\μTorrent Pro\"
运行脚本,也应该可以工作。

我也能在没有

CHCP 65001
的情况下跑步。

附加:使用

REM
发表评论。
::
只是一个空标签,并不是为此目的。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.