在批处理脚本中将exe的路径设置为变量

时间:2018-09-20 08:21:42

标签: windows cmd

我试图通过这样做将exe(exe_sources / build / exefile.exe)的位置设置为变量;

set script_path1=%~p0
set exe_path=script_path1\..\build\
echo exe_path

目录结构如下:

exe_sources
  --build
     --exefile.exe
  --runtest
    --testscript.bat

但是我从没有在exe_path中获得exefile.exe的正确路径。

这如何实现。

1 个答案:

答案 0 :(得分:1)

  • Linux 中,用于 BASH(testscript.sh)脚本:

      #!/bin/bash
    
      <<TREE
      exe_sources
      --build
        --exefile.exe
      --runtest
        --testscript.sh
        --testscript.bat
      TREE
    
      script_path1=$(dirname "$(readlink -f ./testscript.sh)"); # absolute path: /c/Users/Riccardo/Desktop/exe_sources/runtest
      B=$(basename "$(readlink -f ./testscript.sh)"); # testscript.sh
      ls "${script_path1}/../build" # exefile.exe
      exe_path="${script_path1}/../build";
      echo ${exe_path} # /c/Users/Riccardo/Desktop/exe_sources/runtest/../build
      ls ${exe_path} # exefile.exe
    

    您也可以使用 Git Bash Windows 中运行它:

      sh ./testscript.sh
    
  • 始终在 Windows 中,用于 DOS批处理(testscript.bat)脚本:

      @echo off
    
      goto TREE
      exe_sources
      --build
        --exefile.exe
      --runtest
        --testscript.sh
        --testscript.bat
      :TREE
    
      set script_path1="%~dp0"
      echo %script_path1%
      ::"C:\Users\Riccardo\Desktop\exe_sources\runtest\"
      set script_name=%0
      echo %script_name%
      ::"C:\Users\Riccardo\Desktop\exe_sources\runtest\testscript.bat"
      set exe_path="%~dp0..\build"
      echo %exe_path%
      ::"C:\Users\Riccardo\Desktop\exe_sources\runtest\..\build"
      dir %exe_path%