【发布时间】:2019-11-13 05:43:42
【问题描述】:
我有一个批处理文件,我想将文件夹连接到 PATH 变量。
文件夹应通过参数提供给批处理。
我会这样调用文件:
set_path.bat "\Folder1;\Folder2;\Folder3"
现在我有这个:
set FOLDERS=%1
set FOLDERS=%FOLDERS:"=%
:NextItem
if [%FOLDERS%] == [] goto EOF
FOR /f "tokens=1* delims=;" %%a IN (%FOLDERS%) DO
(
echo %%a
set "FOLDERS=%%b"
)
goto NextItem
:EOF
现在它只是应该回显文件夹名称。 我期望的结果是
\文件夹1
\文件夹2
\文件夹3
但是,如果我尝试这样做,我会在 set FOLDERS=\Folder1,\Folder2 之后出现错误:
"\Folder2]" kann syntaktisch an dieser Stelle nicht verarbeitet 韦尔登。
我做错了什么/错过了什么?
【问题讨论】:
-
如果要将值连接到 PATH 变量,请使用以下形式:
set "PATH=%PATH%;new value"。如果值在引号中的第一个参数中给出,请使用:set "PATH=%PATH%;%~1" -
@Aacini 是的,我知道,但我想不使用 Folder1 Folder2 Folder3 而是使用 C:\Temp\Folder1 C:\Temp\Folder2 等连接 PATH 变量(仅作为示例)。但是,文件夹需要像我写的那样通过参数。所以问题不是真正设置 PATH 而是分隔字符串。
-
那么你应该在问题中解释那个。您的问题根本与 PATH 变量无关。我建议您完全重写问题并更改标题...顺便说一句,为了解决您的问题,请将 FOR 命令更改为:
FOR /f "tokens=1* delims=;" %%a IN ("%FOLDERS%") DO (,即将 FOLDERS 变量括在引号中并将左括号放在同一行...
标签: batch-file