批处理:从路径读取文件

Batch: read file from path

我想使用批处理脚本读取 .txt 文件。 每行应存储在一个变量中。

我的问题:我必须为命令提供 .txt 文件的文件路径。不幸的是,到目前为止这还没有奏效。解决办法可能很简单,但我还没有找到。

for /f "tokens=*" %%a in ("%FilePath%backup\packs.txt") do (
         
  Set /a count+=1
  Set url[!count!]=%%a
  
)

echo %url[2]%

for /f 循环可以处理三种不同类型的数据——文件、字符串和命令。当您调用 for 命令时,每一个都以不同的方式表示。

一个文件在设置区域不使用引号处理:for /f %%A in (file.txt) do (
使用单引号处理命令:for /f %%A in ('find "abc" file.txt') do (
字符串用双引号处理:for /f %%A in ("hello world") do (

当然,有时您需要处理路径中带有space 的文件,这时您会使用usebackq 选项。此选项仍将处理所有三种类型的数据,但指标会有所不同。

一个文件使用双引号处理:for /f "usebackq" %%A in ("some file.txt") do (
使用反引号处理命令:for /f "usebackq" %%A in (`find "don't" file.txt`) do (
使用单引号处理字符串:for /f "usebackq" %%A in ('19^" screen') do (


从文件路径中删除引号或添加 usebackq 选项将为您设置变量。

@echo off
setlocal enabledelayedexpansion

set "FilePath=.\test_path\"
set "count=0"

for /f "usebackq tokens=*" %%A in ("%FilePath%backup\packs.txt") do (
    set /a count+=1
    set "url[!count!]=%%A"
)
echo %url[2]%