我在windows的脚本(.cmd文件)中有这个命令:
CALL mv *.exe foo.exe
通配符似乎根本不被解释为通配符,因为执行脚本时,它会抛出一个错误,指出找不到名为*.exe
的文件(字面意思是* .exe) 。顺便说一下,当前目录中的是 .exe文件。
那我应该怎么重写这个命令呢? 感谢
答案 0 :(得分:2)
在Windows中,除非调用另一个批处理脚本,否则不需要使用“调用”。您也可能想要使用'move'命令;这将在Windows中正确插入*。
例如,如果您使用具有以下内容的脚本:
move *.exe foo.exe
在其中,你会得到这样的结果:
C:\dev\example>dir /B
a.exe
mymove.cmd
C:\dev\example>mymove
C:\dev\example>move *.exe foo.exe
C:\dev\example\a.exe
1 file(s) moved.
C:\dev\example>dir /B
foo.exe
mymove.cmd
C:\dev\example>
准确地说明你正在寻找的行为!
答案 1 :(得分:1)
如果mv
可用,可能您附近有sh.exe
或bash.exe
。然后很容易:
sh.exe -c "mv *.exe foo.exe"
与unix shell不同,CMD解释器不会扩展通配符:命令自己做(或不做)。也许builtin ren
命令会扩展通配符,但我不确定。