我在我的Windows的腳本命令(.cmd文件):通配符(星號)
CALL mv *.exe foo.exe
似乎通配符不被在所有解釋爲一個通配符,因爲腳本執行的時候會拋出一個關於沒有找到名稱爲*.exe
(字面上* .exe)的文件的錯誤。順便說一下,是的一個.exe文件在當前目錄中。
那麼我該如何重寫這個命令呢? 謝謝
我在我的Windows的腳本命令(.cmd文件):通配符(星號)
CALL mv *.exe foo.exe
似乎通配符不被在所有解釋爲一個通配符,因爲腳本執行的時候會拋出一個關於沒有找到名稱爲*.exe
(字面上* .exe)的文件的錯誤。順便說一下,是的一個.exe文件在當前目錄中。
那麼我該如何重寫這個命令呢? 謝謝
如果有mv
可用,也許你有sh.exe
或bash.exe
附近。然後,它很簡單:自己做的命令(或不做),它:
sh.exe -c "mv *.exe foo.exe"
CMD解釋不擴展通配符,Unix外殼不同。也許內置的ren
命令會擴展通配符,但我不確定。
在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>
給予正是你要找的行爲!
哪裏可以找到「sh.exe」?我可能需要更新我的路徑 – user1508893
你在哪裏找到'mv'?我認爲sh或bash可以在同一個地方。好吧,也許不是。順便說一句,我剛剛嘗試過使用來自Wine的CMD.EXE通配符的「ren」,並且它工作 - 所以在真正的Windows上嘗試一下。 –
非常感謝! – user1508893