将文件名附加到用户无法使用的文件路径中。
我正在从用户那里获取文件路径,并希望附加我要打开的文件名。之后,我要“启动”文件。但是,它没有按我期望的方式工作。有人可以帮忙吗?
@ echo off
if exist clientshutdown3.exe (
start clientshutdown3.exe) else (
set /p path= Enter path of pdf file:
start %path%\lor.pdf
)
pause
答案 0 :(得分:1)
事物的结合。您需要将路径用双引号引起来,以消除可能的空格。另外,由于我们在循环(代码块)中设置变量,因此最好使用delayedexpansion
。
最后也是最重要的一点是,永远不要设置作为系统环境变量存在的变量名。在这里,path
将打破您的实际路径,命令将不再起作用,因此请创建一个不存在的名称,例如mypath
。
@echo off
setlocal enabledelayedexpansion
if exist clientshutdown3.exe (
start clientshutdown3.exe
) else (
set /p "mypath=Enter path of pdf file: "
start "" "!mypath!\lor.pdf"
)
pause
通过将delayedexpansion
部分移到代码块之外,您也可以在没有start
的情况下逃脱。
@echo off
if exist clientshutdown3.exe (
start clientshutdown3.exe
) else (
set /p "mypath=Enter path of pdf file: "
)
if defined mypath start "" "%mypath%\lor.pdf"
pause