我试图debugging为什么我不能运行这个命令
DOSKEY w-new = copy C:\ utils \ ticket_templates \ wordpress \ readme.txt“%cd%/ readme.txt”/ Y
我已经尝试了两个Windows cmd作为pipe理员,而不是
如果我只是键入C:\ utils \ ticket_templates \ wordpress \ readme.txt“%cd%/ readme.txt”到terminal它的工作,但不是如果我使用w新的别名。
w-new别名也不一致。 例如,我可以在/ user /%USERPROFILE%/ dir中使用它,但不能在它的任何子目录中使用它。
我检查了目标文件的权限,它和/ user /%USEPROFILE%/
任何意见debugging这是赞赏。 源和目标都是git仓库btw。 as / user /%USERPROFILE%/
你的问题是当定义w-new
别名时扩展%cd%
,所以复制目标变成常量 – 宏定义时的当前目录。 您可以通过在命令行提示符处输入以下内容来查看:
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