Bat 脚本读取文件中带空格的行
Bat script read lines in file with spaces
我有一个简单的脚本可以打印 txt 文件中的每一行。
但是,如果该 txt 文件名中有任何空格,它将无法打开该文件。
为了解决这个问题,我尝试在它周围放置空格。然后将其识别为字符串而不是文件。有什么建议可以让我阅读带空格的文件吗?
@echo off
set filename="my file.txt"
for /f "tokens=*" %%A in (%filename%) do (
echo line=%%A
)
@echo off
set filename="my file.txt"
for /f "USEBACKQtokens=*" %%A in (%filename%) do (
echo line=%%A
)
或最好
@echo off
set "filename=my file.txt"
for /f "USEBACKQtokens=*" %%A in ("%filename%") do (
echo line=%%A
)
USEBACKQ 选项更改 FOR /F
解释引号类型的方式
请参阅文档提示中的 for /?
。
语法 SET "var=value"
(其中值可能为空)用于确保分配的值中不包含任何杂散的尾随空格。在这种情况下,这无关紧要,但在一般情况下,批处理可以显示对空格位置的敏感性。总体方案是确保所显示的文件名在包含分隔符的情况下被引用,这需要告知 for/f
"item in quotes"
是一个文件名,而不仅仅是一个字符串。
我有一个简单的脚本可以打印 txt 文件中的每一行。 但是,如果该 txt 文件名中有任何空格,它将无法打开该文件。 为了解决这个问题,我尝试在它周围放置空格。然后将其识别为字符串而不是文件。有什么建议可以让我阅读带空格的文件吗?
@echo off
set filename="my file.txt"
for /f "tokens=*" %%A in (%filename%) do (
echo line=%%A
)
@echo off
set filename="my file.txt"
for /f "USEBACKQtokens=*" %%A in (%filename%) do (
echo line=%%A
)
或最好
@echo off
set "filename=my file.txt"
for /f "USEBACKQtokens=*" %%A in ("%filename%") do (
echo line=%%A
)
USEBACKQ 选项更改 FOR /F
请参阅文档提示中的 for /?
。
语法 SET "var=value"
(其中值可能为空)用于确保分配的值中不包含任何杂散的尾随空格。在这种情况下,这无关紧要,但在一般情况下,批处理可以显示对空格位置的敏感性。总体方案是确保所显示的文件名在包含分隔符的情况下被引用,这需要告知 for/f
"item in quotes"
是一个文件名,而不仅仅是一个字符串。