我有一个允许用户输入文件的批处理文件。它正确输入并存储文件路径。但是当我进入文件并对它做任何事情时,(在我的情况下只是将line1设置为第一行并打印它),它找不到文件名,因为它有一个空格。
这是代码。
@ECHO OFF
SET /p "infile=enter file"
Echo you're file is %infile%
setlocal enableextensions enabledelayedexpansion
FOR /f "usebackqdelims=" %%a IN ("%infile%") do (
set line1= %1
goto :endfor
)
:endfor
echo %line1%
pause
endlocal
这就是发生的事情。
当试图找到该文件时,系统认为文件名以“my”结尾而不是完整的“my text.txt”如何处理文件名中的空格?
答案 0 :(得分:1)
您的问题不是文件名中的空格。您的问题是您输入的文件名称包含引号,存储在变量中的引号,然后在for
命令中放置aditional引号。
SET /p "infile=enter file"
set "infile=%infile:"=%"
Echo you're file is %infile%
确保文件名中没有附加引号,并且不会发生此错误(或在输入文件名时不要使用引号)
答案 1 :(得分:1)
除了MC_ND的回答:
在原始代码中,此行应设置为%% a而不是%1(也没有空格):
set line1= %1