Bash 如何在Makefile中更改驱动器?

Bash 如何在Makefile中更改驱动器?,bash,cmd,makefile,gnu-make,Bash,Cmd,Makefile,Gnu Make,我的Makefile中的目标(规则)有一系列命令。前几个命令应该从D:\drive执行。在此之后,我应该将目录更改为C:\以便可以在C:\驱动器中执行文件。但是,我不能换驱动器。我尝试了以下方法: C:(它在cmd中工作,但在Makefile中不工作) cd/d C:(不工作) cd C:(不工作) 请让我知道如何在make规则中更改驱动器。这可以通过以下两种方法实现:;或&&\ cd d:\folder1 && \ dir && \ echo "all fi

我的Makefile中的目标(规则)有一系列命令。前几个命令应该从D:\drive执行。在此之后,我应该将目录更改为C:\以便可以在C:\驱动器中执行文件。但是,我不能换驱动器。我尝试了以下方法:

  • C:(它在cmd中工作,但在Makefile中不工作)
  • cd/d C:(不工作)
  • cd C:(不工作)

请让我知道如何在make规则中更改驱动器。

这可以通过以下两种方法实现:;或&&\

cd d:\folder1 && \
dir && \
echo "all files in d:\folder1 are listed"

cd c:\folder2 && \
dir && \
echo "all files in c:\folder2 are listed"
相当于

cd d:\folder1; dir; echo "all files in d:\folder1 are listed"

cd c:\folder2; dir; echo "all files in c:\folder2 are listed"

正如中所建议的,您可以尝试在目录名中使用斜杠而不是反斜杠驱动器号不是路径,驱动器的根路径由一条斜杠引用(在Windows中为后退,在nix中为前进)。因此,您正在查找驱动器号,后跟其根驱动器
CD/D C:`将当前目录更改为
C:`驱动器的根目录
CD/D:`将当前目录更改为
D:`驱动器的根目录。
/D
选项允许在驱动器之间移动,而不仅仅是在同一驱动器内的位置。如果您不确定当前目录,则包含该选项总是比较安全的。请注意,执行命令时不必更改当前目录或驱动器。您也可以使用
PushD
作为替代,
PushD C:\
PushD D:\
,但应记住对每个驱动器使用
PopD
,以在之后返回到上一个位置。
cd
不会更改当前驱动器,除非给出了
/D
,这是
cmd/code>特定的。为了便于移植,我会使用与
cmd
、PowerShell和基于Linux的shell一起工作的
pushd