【问题标题】:File path in Windows XP NTFS Format with batch for /F commandWindows XP NTFS 格式的文件路径,带有 /F 命令的批处理
【发布时间】:2014-06-08 20:52:30
【问题描述】:

我试图弄清楚我是否足够了解这个问题的帮助和支持中心。

某些信息没有以对我来说合理的方式链接。

阅读 Type 命令后,我意识到在我的硬盘上使用 NTFS 格式时,我必须使用双引号来表示路径和带空格的文件名。

我将首先显示一个不带引号的批处理代码,然后再显示一个批处理代码,因为使用 for /F 命令这种情况下双引号既不匹配 echo 命令也不匹配 type 命令。

@echo off
rem @
rem @
rem @

for /F %%A in (Textdokument.txt) do set Datei=%%A

rem @
rem @

echo %Datei%

rem @
rem @

echo.

rem @
rem @

set Datei=

rem @
rem @

pause

工作正常。

带有双引号的相同示例只返回一个 ,file not found 消息。

for /F %%A in ("Dokumente und Einstellungen"\Benutzername\Desktop^\"Neuer Ordner"\Textdokument.txt) do set Datei=%%A

为收集更合理的文件内容建立一个简单的基础会导致关于我已阅读的所有信息的这个问题。要进一步搜索,我很幸运能得到答案。

最好的祝福

【问题讨论】:

    标签: windows batch-file windows-xp


    【解决方案1】:

    for /f %%a in (someFileName) ... 会将someFileName 视为要读取的文件名,为文件中的每一行执行do 子句中的代码。

    for /f %%a in ("some file name") .... 会将"some file name" 视为要处理的中间字符串,仅针对该字符串执行do 子句中的代码。

    for /f "usebackq" %%a in ("some file name") ... 会将"some file name" 视为要读取的文件名,为文件中的每一行执行do 子句中的代码。

    而且,引号应该包含完整路径,所以你的代码应该是

    for /F "usebackq" %%A in (
        "Dokumente und Einstellungen\Benutzername\Desktop\Neuer Ordner\Textdokument.txt"
    ) do set Datei=%%A
    

    【讨论】:

    • 如果不使用记事本或插入符号的回车,“usebackq”选项是最好的建议,它会从文本文件返回安全令牌。
    【解决方案2】:

    尝试使用完整路径并在开头仅使用",在结尾使用type

    for /F %%A in (type "c:\Dokumente und Einstellungen\Benutzername\Desktop\Neuer Ordner\Textdokument.txt") do set Datei=%%A
    

    【讨论】:

    • for /F 命令与括号中的 type 命令一起使用返回,找不到文件“type”。
    猜你喜欢
    • 1970-01-01
    • 2022-11-13
    • 2019-10-31
    • 2023-03-28
    • 2010-09-09
    • 2010-12-23
    • 2021-08-16
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多