batch-file - 如何循环文本文件的每一行以使用 Windows 批处理文件进行打印?
问题描述
我正在使用以下批处理脚本循环文本文件的每一行以打印它,但它唯一打印的是文本文件的名称。
@echo off
setlocal
SET ServerList="serversRDPok.txt"
FOR /F "eol=; tokens=*" %%a in (%ServerList%) DO (
echo line=%%a
)
endlocal
解决方案
以下命令SET ServerList="serversRDPok.txt"
定义了一个名为ServerList
value的变量"serversRDPok.txt"
。如果您查看For
命令的用法信息,即for /?
,您会注意到包含这些双引号意味着您正在使用此特定指令,FOR /F ["options"] %variable IN ("string") DO command
. 它将您的双引号值视为字符串。您需要的是它被视为双引号文件名,而不是字符串。
为此,您需要合并UseBackQ
说明。
@Echo Off
SetLocal EnableExtensions
Set ServerList="serversRDPok.txt"
For /F "UseBackQ Delims=" %%G In (%ServerList%) Do (
Echo line=%%G
)
尽管您确实应该使用推荐的语法,,Set "VariableName=String Value"
但此特定方法不包括双引号作为名称或值字符串的一部分。在整个脚本中,每当您需要对值进行双引号时,只需用双引号将变量名括起来即可。
@Echo Off
SetLocal EnableExtensions
Set "ServerList=serversRDPok.txt"
For /F "UseBackQ Delims=" %%G In ("%ServerList%") Do (
Echo line=%%G
)
推荐阅读
- javascript - 在 Javascript Open Function 中使用变量
- excel - VBA Excel在A列中查找文本,复制整行
- java - 选择在同一行上运行更新语句时不返回结果?
- php - 正确的 fread() 应用程序?
- arduino - Ionic 3 是否支持 Arduino?
- java - 如何使用 RegEx 从该行中提取子字符串
- spring-boot - 我的 spring-cloud-consul 演示没有注册到领事服务器
- azure - 将 Azure ADF 管道内部的值传递到调用管道的 PowerShell
- r - 哪些“控制”设置对于使用“sendmailR”从 Outlook 发送自动电子邮件有效?
- excel - VBA 透明 ActiveX 对象在单击时变得不透明