在批处理脚本中将文本追加到变量

时间:2019-03-26 07:31:15

标签: windows batch-file scripting

将文件名附加到用户无法使用的文件路径中。

我正在从用户那里获取文件路径,并希望附加我要打开的文件名。之后,我要“启动”文件。但是,它没有按我期望的方式工作。有人可以帮忙吗?

@ echo off
if exist clientshutdown3.exe (
start clientshutdown3.exe) else (
set /p path= Enter path of pdf file:
start %path%\lor.pdf
)
pause

1 个答案:

答案 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