windows cd中有一个文字和一个变量,导致git要么是可发现的,要么是不可发现的

iaqfqrcu  于 2023-05-01  发布在  Windows
关注(0)|答案(1)|浏览(109)

这可能是一个非常基本的问题,尽管我能找到的所有回答都是“安装git”或“在git目录中”。“据我所知,这两个问题都已经解决了,但我的问题仍然存在。虽然解决方案可以通过取消没有输入的默认行为来解决,但我很好奇是什么模糊的(或基本的)行为导致了这一点。

问题[Git via Batch]

假设我在“C:\RepoBase”中有一个git repo,但这是我想要默认的 main repo。在不讨论进一步功能的情况下,脚本将CD到作为输入提供的位置,或者如果没有提供输入,则CD到默认路径,然后继续获得当前头部提交的名称。

:: Go to the repo in question
if [%1]==[] (
    cd C:\RepoBase
) else (
    cd %1
)
:: Get name of current branch
FOR /F "tokens=*" %%g IN (
    'call git rev-parse --abbrev-ref HEAD'
) do (
    SET CurrentBranch=%%g
)

这个解决方案有效。然而,如果我想使用我稍后cd到的路径的名称而不需要再次使用条件,即使在移动到目录后可以获得目录的名称,我也会尝试设置一个变量作为路径。它确实可以CD到目录中,但是从与上面的部分相同的位置,下面的部分的git调用导致“无法识别”。“为什么?

:: Go to the repo in question
SET PATH=%1
if [%1]==[] (
    SET PATH=C:\RepoBase
) 
cd "%PATH%"
:: Get name of current branch
FOR /F "tokens=*" %%g IN (
    'call git rev-parse --abbrev-ref HEAD'
) do (
    SET CurrentBranch=%%g
)
omqzjyyz

omqzjyyz1#

%PATH%是一个系统变量,用于存储Windows查找可执行文件的目录,这样您就不必总是调用所有内容的完整路径。您重写了它,因此通常不需要提供完整路径的内容现在需要完整路径。
将变量名更改为其他名称,如REPO_PATH。

相关问题