【问题标题】:Batch File: For Loop: Opens file instead of Rading it. Why?批处理文件: For 循环:打开文件而不是读取它。为什么?
【发布时间】:2014-09-14 20:08:56
【问题描述】:

当文件名(即links.txt)仅在不带引号的情况下指定时,下面的代码有效(可能使用引号,但我没有测试过。)。

当我将文件名替换为包括空格的整个文件路径时,批处理文件无法正常工作。相反,打开了文本文件,当我关闭文本文件时,cmd 框会显示 Echo 已关闭的消息。就像在打开文件的循环的第一个实例上一样。为什么会这样?

@echo off

SET var=
SETLOCAL EnableDelayedExpansion
FOR /f %%i in ('"Z:\My Docs\links.txt"') DO (
   SET var=!var!%%i 
)
echo !var!


ENDLOCAL



pause

【问题讨论】:

    标签: batch-file


    【解决方案1】:
    for /f "usebackq" %%i in ("Z:\My Docs\links.txt") do ...
    

    如果你在你的文件名周围使用单引号,for 命令解释你想要执行它,但只有双引号,它被认为是一个文字字符串。

    来自forusebackq 的帮助(参见for /?):... allows the use of double quotes to quote file names in file-set

    【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多