下面的脚本用于在另一部分脚本中加载使用输入%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
答案 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
的所有引号并引用整个文件名,以确保如果您改变主意并在路径名中包含空格,则不会破坏批次。
当然,它也有它的缺点 - 具有特殊意义的字符(如^%
和其他一些 - 在文件名中很少使用 - 可能会出现问题。