Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理文件在路径上迭代_Batch File_For Loop - Fatal编程技术网

Batch file 使用批处理文件在路径上迭代

Batch file 使用批处理文件在路径上迭代,batch-file,for-loop,Batch File,For Loop,我想使用我的%PATH%并在其中添加倒逗号。换句话说,从 C:\Program Files\a;C:\Program Files\b;C:\Program Files(x86)\c 进入 原因当然是这些空间,但这不是重点。我目前有: @ECHO OFF Setlocal EnableDelayedExpansion FOR /f "tokens=1 delims=^; eol=¬" %%G IN ("%PATH%") DO @ECHO "%%G"; 然而,这只是我人生道路的第一部分: "

我想使用我的%PATH%并在其中添加倒逗号。换句话说,从

C:\Program Files\a;C:\Program Files\b;C:\Program Files(x86)\c
进入

原因当然是这些空间,但这不是重点。我目前有:

@ECHO OFF

Setlocal EnableDelayedExpansion

FOR /f "tokens=1 delims=^; eol=¬" %%G IN ("%PATH%") DO @ECHO "%%G";
然而,这只是我人生道路的第一部分:

"C:\Program Files\a";
这是朝着正确的方向迈出的一步,但我如何让它提供所有其他的呢?此外,如何将整个输出折叠成单个变量,以便将其传递给另一个命令?

尝试以下操作:

@echo off
set "p=%path%"
set "p=%p:"=%"
set p="%p:;=";"%"
echo %p%
@ECHO OFF &SETLOCAL disableDelayedExpansion
SET "dPath=C:\Program Files\a;C:\Program Files\b;C:\Program Files(x86)\c"
FOR %%a IN ("%dPath:;=";"%") DO ECHO(%%~a

输出:

C:\Program Files\a C:\Program Files\b C:\Program Files(x86)\c C:\ProgramFiles\a C:\ProgramFiles\b C:\ProgramFiles(x86)\C
是的,比我快。或者,只需
回显“%PATH:;=”;“%”
@mbroshi现有引号需要删除,这是另一行。路径中可以已经有引号,并且必须满足这些引号的要求。@foxidrive是,而且
路径
可以有分号:|感谢您的评论:) C:\Program Files\a C:\Program Files\b C:\Program Files(x86)\c