如何在 Windows 中仅使用 git status 获取更改文件的完整路径?

如何在 Windows 中仅使用 git status 获取更改文件的完整路径?

假设我更改了项目中的两个文件。

我的项目位于C:\Projects\Website

当我使用时,git status --porcelain我得到了这个结果:

 M Component.jsx
?? Public/Index.html

我需要的是删除每行的初始前缀,并获取更改的文件的完整路径:

C:\Projects\Website\Component.jsx
C:\Projects\Website\Public\Index.html

我需要这个,因为我正在创建一个 linter 软件,并且我想获取更改的文件列表并对其进行静态分析。

答案1

一个简单的批处理文件应该能够提供您想要的内容(假设我理解这个问题)。

我刚刚想到了这个:

    @echo off

    for /F "tokens=2 delims= " %%c in ('git status --porcelain') do call :AnalizePaths "%cd%" "%%c"
    goto :EOF

    :: ----------------------------------------------------------
    :: Procedure: AnalizePaths
    :: ----------------------------------------------------------
    :AnalizePaths
    Set BaseDirectory=%~1
    Set ChangedFile=%~2

    Set FullPath=%BaseDirectory%\%ChangedFile%
    Set FullPath=%FullPath:/=\%

    If "%FullPath:~-1%"=="\" echo %FullPath% is a path and not a file &&goto :EOF

    Echo look at changed file "%FullPath%".
    goto :EOF

相关内容