如何用PowerShell将Git变更文件转为分号列表传入jb cleanupcode
将Git变更文件转为分号分隔列表传入jb cleanupcode
Windows PowerShell 方案
直接用PowerShell的字符串拼接能力,一行即可完成:
jb cleanupcode --include (git diff --name-only | Join-String -Separator ';')
如果你的PowerShell版本低于7.0,Join-String命令不可用,改用数组拼接方式:
$changedFiles = (git diff --name-only) -join ';' jb cleanupcode --include $changedFiles
Windows CMD 方案
通过延迟变量扩展实现逐行路径拼接:
@echo off setlocal enabledelayedexpansion set "fileList=" for /f "delims=" %%f in ('git diff --name-only') do ( if defined fileList ( set "fileList=!fileList!;%%f" ) else ( set "fileList=%%f" ) ) jb cleanupcode --include %fileList% endlocal
Linux/macOS (Bash/Zsh) 方案
用tr命令替换换行符为分号:
jb cleanupcode --include "$(git diff --name-only | tr '\n' ';')"
或者用paste命令更稳妥(避免末尾多出一个无意义的分号):
jb cleanupcode --include "$(git diff --name-only | paste -sd ';' -)"
注意事项
- 若变更文件路径包含空格,上述方案都能正确处理,无需额外转义
- 如果
git diff --name-only无输出(无变更文件),--include会传入空值,此时jb cleanupcode可能会格式化所有文件,建议先判断文件列表是否为空再执行命令
内容的提问来源于stack exchange,提问作者THX-1138
相关产品推荐
相关产品推荐

