我在批处理(gitcopyfiles.bat)文件中有这个代码,它跟踪git的修改文件并将它们复制到指定的文件夹但是它不起作用:
for /f "usebackq tokens=*" %A in (`git diff-tree -r --no-commit-id --name-only
--diff-filter=ACMRT HEAD~1 HEAD`) do echo FA|xcopy "%~fA" "C:\git_changed_files\%A"
但是当我从命令提示符直接运行上面的命令时,它不起作用然而,它确实运行良好。所以它不仅仅在批处理文件中有效。
任何人都可以帮助可能出错吗?我甚至尝试以管理员身份运行bat文件,但仍然没有运气
bat文件中出现的错误消息是:
~fA" "C:\git_changed_files\A" was unexpected at this time.
D:\wamp\www\myproject>for /f "usebackq tokens=*" ~fA" "C:\git_changed_files\A"
答案 0 :(得分:1)
do echo FA|xcopy "%~fA" "C:\git_changed_files\%A"
echo FA|
不是必需的,将其删除"%~fA"
可能无法正常工作\%A"
不是必需的,将其删除for /f "usebackq tokens=*"
应为for /f "usebackq delims="
答案 1 :(得分:1)
给它一个运行:
@echo off
for /f "delims=" %%A in ('git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT HEAD~1 HEAD') do xcopy "%%A" "C:\git_changed_files\"