Dat*_*ler 0 path batch-file readfile
我想使用批处理脚本读取 .txt 文件。每一行都应该存储在一个变量中。
我的问题:我必须为命令提供 .txt 文件的文件路径。不幸的是,到目前为止这还没有奏效。解决方案可能很简单,但我还没有找到。
for /f "tokens=*" %%a in ("%FilePath%backup\packs.txt") do (
Set /a count+=1
Set url[!count!]=%%a
)
echo %url[2]%
Run Code Online (Sandbox Code Playgroud)
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 (
当然,有时您需要处理路径中带有空格的文件,这时您就需要使用该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]%
Run Code Online (Sandbox Code Playgroud)