我是批处理脚本编程的新手。如果我给出相对路径,则在执行批处理文件时获取错误。 我有以下文件夹结构
Script folder - C:\batch\script\ServiceRegister.bat
Bin path - C:\batch\bin\ERecruitGenerateReportsWindowsService.exe
ServiceRegister.bat批处理文件 -
%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe %~dp0%~1\bin\ERecruitGenerateReportsWindowsService.exe
当我执行ServiceRegister.bat文件时,我收到错误:
Exception occurred while initializing the installation:
System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\batch\script\bin\ERecruitGenerateReportsWindowsService.exe' or one of its dependencies. The system cannot find the file specified.
我正在使用“%~dp0%~1”在目录中向上升级,但仍然会获得当前路径。
%~dp0%~1 - C:\batch\script\
我需要C:\ batch \ path。我怎么能走这条路呢? 它工作正常如果我给出绝对路径 -
%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\batch\bin\ERecruitGenerateReportsWindowsService.exe
答案 0 :(得分:10)
您尝试使用%~1
在目录结构中上升一级是创造性的,语法完全无效。正确的语法也很简单 - 使用..\
。
由于\
以%~dp0
结尾,因此不需要提前\
。
%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe %~dp0..\bin\ERecruitGenerateReportsWindowsService.exe