Bat脚本用空格读取文件中的行

时间:2015-02-12 01:03:35

标签: batch-file for-loop

我有一个简单的脚本,可以打印txt文件中的每一行。 但是,如果该txt文件名具有任何空格,则无法打开该文件。 为了解决这个问题,我尝试在它周围放置空格。然后将其识别为字符串而不是文件。有关如何通过空格读取文件的任何建议吗?

@echo off
set filename="my file.txt"
for /f "tokens=*" %%A in (%filename%) do (
  echo line=%%A
)

1 个答案:

答案 0 :(得分:2)

@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"(其中value可以为空)用于确保任何杂散尾随空格不包含在分配的值中。在这种情况下,这是不相关的,但在一般情况下,批次可以显示对空间位置的敏感性。总体方案是确保如果文件名包含分隔符,则引用它,并且要求for/f被告知"item in quotes"是文件名,而不仅仅是字符串。

相关问题