我试图调试我无法运行此命令的原因
DOSKEY w-new = copy C:\ utils \ ticket_templates \ wordpress \ readme.txt"%cd%/ readme.txt" / Y
我已尝试将两个Windows cmd作为管理员而不是
如果我只输入C:\ utils \ ticket_templates \ wordpress \ readme.txt"%cd%/ readme.txt"进入终端它工作但不是如果我使用w-new别名。
w-new别名也不一致。例如,我可以在/ user /%USERPROFILE%/ dir中使用它,但不能在它的任何子目录中使用它。
我检查了目的地的文件权限,它与/ user /%USEPROFILE%/
完全相同有任何关于调试此建议的建议表示赞赏。源和目标都是git存储库btw。和/ user /%USERPROFILE%/
一样答案 0 :(得分:1)
当定义%cd%
别名时,问题是w-new
被扩展,因此复制目标变为常量 - 宏定义时的当前目录。您可以通过在命令行提示符下键入以下内容来查看:
doskey /macros
此外,您不应将/
用作文件夹分隔符,而是使用\
。 /
经常有效,但并非在所有情况下都有效。
您可以通过在变量名称中插入插入符来阻止在定义期间展开%cd%
:
DOSKEY w-new=copy C:\utils\ticket_templates\wordpress\readme.txt "%^cd%\readme.txt" /Y
但为什么要提供任何目标呢?您只是使用原始文件名将文件复制到当前目录 - 这是未指定目标时COPY的默认行为。
所以你的宏可以简单地是:
DOSKEY w-new=copy C:\utils\ticket_templates\wordpress\readme.txt