File 用户输入中的空格

File 用户输入中的空格,file,variables,batch-file,call,space,File,Variables,Batch File,Call,Space,下面的脚本用于加载在脚本的另一部分中使用输入%Name%创建的文件。代码适用于没有空格的名称,但要调用%Name%,exTest file中有空格的文件,用户需要输入“Test file”。问题是,这会将变量%Name%设置为“%Name%”,而不仅仅是%Name%。是否有更好的方法来执行此操作,或者有其他步骤中删除“”的方法 :LoadError Echo INVALID NAME echo. echo. echo. echo. goto

下面的脚本用于加载在脚本的另一部分中使用输入%Name%创建的文件。代码适用于没有空格的名称,但要调用%Name%,exTest file中有空格的文件,用户需要输入“Test file”。问题是,这会将变量%Name%设置为“%Name%”,而不仅仅是%Name%。是否有更好的方法来执行此操作,或者有其他步骤中删除“”的方法

    :LoadError
    Echo INVALID NAME
    echo.
    echo.
    echo.
    echo.
    goto LoadSelect1
    :LoadSelect
    cls
    echo.
    echo.
    echo.
    echo.
    echo.
    goto LoadSelect1
    :LoadSelect1
    set /p Name=Enter character to load:
    cls
    if EXIST .\SaveFiles\%Name%_Savefile.bat goto Load
    goto LoadError
    :Load
    call:.\SaveFiles\%Name%_Savefile.bat
    cls

找到了一个简单的解决方案。改变了

if EXIST .\SaveFiles\%Name%_Savefile.bat goto Load

我不该花30分钟来听的。

我会用 set/p Name=输入要加载的字符: cls 设置“name=%name:=%” 如果存在“\SaveFiles\%Name%\u Savefile.bat”转到加载

(提及
名称时,也同样如此

这将确保删除在
Name
中输入的任何引号,并引用整个文件名,以确保如果您改变主意并且路径名中有空格,不会中断批处理

当然,它也有它的缺点-对批处理有特殊意义的字符,如
^%
和一些其他字符-很少在文件名中使用-可能会出现问题

if EXIST .\SaveFiles\"%Name%_Savefile.bat" goto Load