【问题标题】:Windows Batch: Set Variables from Text FileWindows 批处理:从文本文件中设置变量
【发布时间】:2011-05-04 15:58:54
【问题描述】:

我目前正在寻找一种从 txt 文档中的链接在 windows 批处理文件中设置变量的方法。

例如,如果文本文件显示:

http://website1.com
http://website2.com
http://website3.com

我希望可以将它们输出到批处理中的变量。示例:

set var1="Line one of text file, ex: http://website1.com"
set var2="Line two of text file, ex :http://website2.com"
set var3="Line three of text file, ex: http://website3.com"

任何帮助表示赞赏,在此先感谢!

【问题讨论】:

  • 至于你的问题,我想你会从一个 bat 文件中找到它。您是否考虑过 powershell,可能更容易?您实际使用的是哪个操作系统/版本?
  • 目前只有 Windows XP Pro。非常感谢任何建议。 :D

标签: windows text batch-file text-files


【解决方案1】:

给你!玩得开心。

(
set /p var1=
set /p var2=
set /p var3=
)<Filename.txt

为您带来相同的结果!

【讨论】:

  • Mucho Grande Dividida
【解决方案2】:

FOR /F 循环命令可用于从文本文件中读取行:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F "tokens=*" %%A in (sites.txt) do (
    SET /A vidx=!vidx! + 1
    set var!vidx!=%%A
)
set var

你最终得到:

var1=http://website1.com
var2=http://website2.com
var3=http://website3.com

【讨论】:

  • 嗨安德斯,如果我只想把网站地址作为输出怎么办?当前输出为 "var1=website1.com" 所需输出为 "website1.com"
【解决方案3】:

根据@Andres 的回答,如果有人只寻找变量的值作为输出:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F "tokens=*" %%A in (sites.txt) do (
    SET /A vidx=!vidx! + 1
    set var!vidx!=%%A
)

for /L %%I in (1,1,%vidx%) do (
echo !var%%I!
)

Pause

输出:

http://website1.com
http://website2.com
http://website3.com

当然,这种方法只有在你想做一些文本操作什么的时候才有用,但如果你只是想打印文本文件的内容,它就不是特别的方法了。

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多