Windows 从批处理文件中的.txt文件读取多个路径
我有一个批处理脚本,需要读取config.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% 如何修改它以处理多个目录路径 编辑: 下面是我尝试获
@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,添加了我尝试用于两个目录路径的块。同样,通过添加paradensisdo
块也尝试了相同的方法,但没有得到解决。