用户输入的空间

时间:2014-04-11 22:58:30

标签: file variables batch-file call space

下面的脚本用于在另一部分脚本中加载使用输入%Name%创建的文件。代码适用于没有空格的名称,但为了在%Name%ex Test 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

2 个答案:

答案 0 :(得分:0)

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

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

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

我不应该花30分钟才能抓住它。

答案 1 :(得分:0)

我使用     set / p Name =输入要加载的字符:     CLS     set" name =%name:" =%"     如果EXIST"。\ SaveFiles \%Name%_Savefile.bat"转到

(同样提及name

这将确保删除输入Name的所有引号并引用整个文件名,以确保如果您改变主意并在路径名中包含空格,则不会破坏批次。

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