Windows 从批处理文件中的.txt文件读取多个路径

Windows 从批处理文件中的.txt文件读取多个路径,windows,batch-file,filepath,Windows,Batch File,Filepath,我有一个批处理脚本,需要读取config.txt中提到的多个目录路径。我能够为一个目录路径实现这一点,但它的修改版本不适用于多个路径 下面是工作正常的示例 @echo off for /F "usebackq delims=" %%L in (config.txt) do set "DataPath=%%L" set "DataPath=%DataPath:/=\%" echo Application path is: %DataPath% 如何修改它以处理多个目录路径 编辑: 下面是我尝试获

我有一个批处理脚本,需要读取config.txt中提到的多个目录路径。我能够为一个目录路径实现这一点,但它的修改版本不适用于多个路径

下面是工作正常的示例

@echo off
for /F "usebackq delims=" %%L in (config.txt) do set "DataPath=%%L"
set "DataPath=%DataPath:/=\%"
echo Application path is: %DataPath%
如何修改它以处理多个目录路径

编辑:

下面是我尝试获取两个路径的过程,'%DataPath%'正在打印该值

@echo off
for /F "usebackq tokens=1,2 delims=" %%L in (config.txt) do set 
"DataPath=%%L"&set "filepath=%%M"
 set "DataPath=%DataPath:/=\%"
 set "filepath=%filepath:/=\%"
 echo Application path is: %DataPath%
 echo Application path is: %filepath%

根据我在评论中给出的建议(您在编辑中没有实施),我希望您能提出以下方法:

@Echo关闭
SetLocal DisableDelayedExpansion
对于/F“UseBackQ Delims=“%%L In”(“config.txt”)Do(
设置“数据路径=%%L”
SetLocal EnableDelayedExpansion
设置“数据路径=!数据路径:/=\!”
Echo应用程序路径为:!DataPath!
端部
)
暂停

这假设
config.txt
仅包含一个文件路径列表,每行一个。

从文件恢复路径的数组版本

@ECHO OFF
SETLOCAL EnableDelayedExpansion
Set "_P=0"

FOR /F "tokens=* USEBACKQ" %%a IN (%userprofile%\desktop\logfile.txt) DO (
    Set /a _P+=1
    Set "Pathway[!_P!]=%%a"
)

::: use the below to take actions with elements in the array.
::: For example, search the array for specific files to delete/copy/move/open.

FOR /L %%e IN (1,1,!_P!) DO (
    ECHO Path !%%e! = !Pathway[%%e]!
)
pause

我觉得你的工作代码不正确。在(config.txt)中使用
“delims=“%%L”
“usebackq delims=“%%L in”(“config.txt”)
”。我推荐后者。就您的问题而言,我们不是来为您编写的,您需要编写它并在这里发布一个如果它出现特定问题的部分。为了帮助您做到这一点,我建议您将所有命令放在括号中的
do
部分中,并在该部分中启用然后使用延迟扩展,根据需要结束它。@Compo,添加了我尝试用于两个目录路径的块。同样,通过添加paradensis
do
块也尝试了相同的方法,但没有得到解决。