代码之家  ›  专栏  ›  技术社区  ›  Skenvy

带有文字vs变量的cd会导致git被发现或不被发现

  •  -1
  • Skenvy  · 技术社区  · 7 年前

    问题[吉特] 通过 [批处理]

    假设我在“C:\RepoBase”中有一个git回购协议,以及其他可能的协议,但这是 主要的 回购我想违约。在不讨论进一步功能的情况下,脚本将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
    )
    

    此解决方案 作品 为什么?

    :: 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
    )
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   SomethingDark    7 年前

    %PATH% 是一个系统变量,用于存储Windows查找可执行文件的目录,这样您就不必总是调用所有文件的完整路径。你写了它,所以你通常不需要提供完整路径的东西现在需要一个完整路径。