Win7批处理命令不起作用

时间:2013-09-17 11:32:08

标签: windows batch-file

我在批处理(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"

2 个答案:

答案 0 :(得分:1)

do echo FA|xcopy "%~fA" "C:\git_changed_files\%A"
  1. echo FA|不是必需的,将其删除
  2. 如果未设置文件路径,
  3. "%~fA"可能无法正常工作
  4. \%A"不是必需的,将其删除
  5. 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\"