File 用户输入中的空格
下面的脚本用于加载在脚本的另一部分中使用输入%Name%创建的文件。代码适用于没有空格的名称,但要调用%Name%,exFile 用户输入中的空格,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
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
找到了一个简单的解决方案。改变了
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