2015-12-22 72 views
1

在描述我是執行命令行提示符(Windows 10)中的新問題之前,我必須說。Windows命令提示符在for循環中的子串

我有一個包含txt文件的目錄(以及其他文件)。我需要執行命令行可執行文件(txt2las),其中讀取txt文件並寫入.las文件。這是我迄今爲止的命令提示符for /R %f in (.\*.txt) do txt2las -i %f -o %f.laz

但是,這會創建類似name.txt.laz的文件。我想要的是name.laz,因此不知怎麼從子字符串開始到最後四個字符。有人可以幫助我如何做到這一點?

我試過子字符串「函數」,但沒有寫任何東西。

回答

0

您可以通過使用~n修改解壓文件(不帶擴展名)的只是名字:

for /R %f in (.\*.txt) do txt2las -i %f -o "%~dpnf.laz" 

你可以閱讀更多有關FOR /?幫助文檔的修改器。每評論


編輯:

爲了確保它被放置在同一個目錄作爲源,除了添加~dp修飾符~n。除了文件n之外,這將提取d rive和p ath。另外,如果路徑中有空格,您可能希望將整個輸出封裝在引號中。

+0

但是,此解決方案不會將該文件放在原始子文件夾中。不是它重要的100%,但會更好。 –

+0

@ StellaPso-m - 通過使用'〜dpn'修飾符,你可以做到這一點。查看更新後的答案。 –

+0

這個工程!謝謝! –

0
... do txt2las -i %f -o %~nf.laz 

的文檔可以通過從提示執行for /?讀取。

相關問題