假设我更改了项目中的两个文件。
我的项目位于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