例如:我有一個文件:FILENAME.EXT,並希望在沒有.EXT文件的情況下提取文件名。我希望能夠使用無擴展名文件名作爲只接受文件名而不包含其擴展名的命令。我有一個名爲BCHECK的實用程序,它接受一個沒有擴展名的文件名作爲參數。使用BCHECK *。不起作用,因爲所有文件都有.DAT或.IDX擴展名。這些文件不斷被重命名,因此我需要爲BCHECK提供新文件名,而無需手動輸入它們。如何在命令行解釋器和批處理文件中抑制文件擴展名?
回答
對於DOS批處理文件,您可以查看參數here。例如,以下命令顯示0參數的擴展名,即批處理文件的名稱。
echo %~n0
UPDATE:
下面是可以添加到一個批處理文件的例子。
FOR %%f IN (*.dat) DO bcheck -y %%~nf
此命令將與一個.dat
擴展在當前目錄下的每個文件運行bcheck -y BASENAME
。該命令是一個for循環,其中包含一個參數%%f
。 %%f
參數包含文件的全名。對於每個匹配*.dat
的文件,它將在DO關鍵字後面運行該命令。 %%~nf
指示使用參數(%%f
)中的基準名稱(~n
)。
@bobs:這在DOS 6.22中不起作用。我在C:\ DBFILES目錄中有大約30個帶有.DAT擴展名的文件。我有一個名爲BCHECK.EXE的實用程序,它需要將其作爲其參數30的基本名稱。 DAT文件,例如:'bcheck -y BASENAME',那麼你能給我提供一個工作的例子嗎? – 2010-08-07 12:49:09
@Frank:我在答案中增加了更多信息。 – bobs 2010-08-07 15:44:47
@bobs:不,在批處理腳本中不起作用,bcheck迴應:File%〜nf找不到。請記住,這是純DOS 6.22而不是Windows cmd.exe命令解釋器。 – 2010-08-07 19:39:40
這個的Unix命令是basename
。
- 1. 請解釋此批處理文件命令來解壓文件
- 2. 執行後重命名批處理文件擴展名
- 3. 批處理文件中的命令行?
- 4. 批處理文件 - 使用文件擴展名創建文件
- 5. 批處理文件命令
- 6. 在命令批處理文件中隱藏文件名
- 7. Windows批處理文件複製文件允許重命名文件擴展名但不復制副本
- 8. 批量重命名文件擴展名
- 9. 批處理文件解壓和重命名文件
- 10. 在Windows命令(批處理文件)中重命名文件名的一部分
- 11. 變異文件擴展名的批處理文件
- 12. 批處理文件按指定的擴展名刪除文件
- 13. 在批處理文件中執行復制命令
- 14. 如何在批處理文件中運行PowerShell命令
- 15. 如何在批處理文件中運行多個命令?
- 16. Windows批處理文件命令行參數中的星號(*)得到擴展
- 17. 批處理文件除擴展名外,通過擴展刪除文件?
- 18. 如何使用批處理文件將批處理文件命令追加到字符串(文件名)
- 19. 通過批處理文件複製和重命名特定擴展名的文件
- 20. 批處理文件目錄擴展
- 21. 移動和重命名文件,保留擴展名,但在批處理文件中包含子目錄
- 22. 批量刪除文件擴展批處理文件
- 23. 如何匹配命令行參數在批處理文件
- 24. 如何控制批處理文件中的輸出文件名?
- 25. 批處理文件重命名文件夾中的文件
- 26. 在批處理文件(* .bat)中創建文件命令
- 27. 在windows的批處理文件中運行wget命令行
- 28. 批處理命令的文件夾中創建的文件名空txt文件
- 29. 抑制變量擴展在awk命令
- 30. 批處理命令文件窗口
刪除「unix」標籤,因爲這似乎只是關於DOS/Windows批處理文件。 – David 2010-08-07 03:43:21
@David:我的應用程序在UNIX和DOS下運行,所以我需要知道兩者。 – 2010-08-07 03:46:40
Unix上的'basename'會爲你工作嗎? – Gabe 2010-08-07 04:03:18