2013-01-04 55 views
3

我在我的Windows的腳本命令(.cmd文件):通配符(星號)

CALL mv *.exe foo.exe

似乎通配符不被在所有解釋爲一個通配符,因爲腳本執行的時候會拋出一個關於沒有找到名稱爲*.exe(字面上* .exe)的文件的錯誤。順便說一下,的一個.exe文件在當前目錄中。

那麼我該如何重寫這個命令呢? 謝謝

回答

1

如果有mv可用,也許你有sh.exebash.exe附近。然後,它很簡單:自己做的命令(或不做),它:

sh.exe -c "mv *.exe foo.exe" 

CMD解釋不擴展通配符,Unix外殼不同。也許內置的ren命令會擴展通配符,但我不確定。

+0

哪裏可以找到「sh.exe」?我可能需要更新我的路徑 – user1508893

+1

你在哪裏找到'mv'?我認爲sh或bash可以在同一個地方。好吧,也許不是。順便說一句,我剛剛嘗試過使用來自Wine的CMD.EXE通配符的「ren」,並且它工作 - 所以在真正的Windows上嘗試一下。 –

+0

非常感謝! – user1508893

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> 

給予正是你要找的行爲!