我有一个简单的脚本,可以打印txt文件中的每一行。 但是,如果该txt文件名具有任何空格,则无法打开该文件。 为了解决这个问题,我尝试在它周围放置空格。然后将其识别为字符串而不是文件。有关如何通过空格读取文件的任何建议吗?
@echo off
set filename="my file.txt"
for /f "tokens=*" %%A in (%filename%) do (
echo line=%%A
)
答案 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"
是文件名,而不仅仅是字符串。