我完全不熟悉批處理文件編程,所以請原諒我,如果這顯而易見。說我有存儲在一個字符串c:\some\path\someFile.extension
TheFileToPass和我來自同一個批處理文件調用另一個exe文件,這樣我只能通過它從TheFileToPass(即,someFile)扣除文件名。從變量獲取文件名
的什麼,我試圖做一個僞代碼:
串TheFileToPass = 「C:\一些\路徑\ someFile.extension」
呼叫external_tool.exe TheFileToPass.GetFileNameWithoutExtension()
通過網上搜索我才知道,%〜NI可以解決這個問題,但我該如何使用它的TheFileToPass變量?我曾嘗試以下,但沒有什麼工作:
回聲%%〜TheFileToPass
呼應%%〜N%TheFileToPass%
編輯
好吧,我嘗試更具描述性。我有一對夫婦在我們的批處理文件中定義的「局部變量」的:
set someFlag1=
set someFlag2=
set someFile=
然後我解析命令行參數,並把它們上面的內聲明的變量。批處理文件可以具有可變數量的命令行參數,因此值的位置可以根據某些預定義的規則而變化。簡而言之,我們不能確定%1,%2,%3(等等)哪個永遠有文件路徑。無論如何,根據預定義的規則,我們解析命令行參數(使用SHIFT循環技術)並將這些信息保存在我們的變量中:someFlag1,someFlag2和someFile。
現在,someFile包含文件的完整路徑,例如:「c:\ some \ path \ file.txt」。我們希望調用一個外部exe文件,並從someFile變量(本例中爲「file」)的內容中傳遞文件名。
那麼我們對「someFile」變量進行什麼操作,我們只從完整路徑獲取文件名?
你的解釋是很難按照這裏 - 你可以給一些例子? 'filename = one.txt''string-inside-one.txt = apple.orange''需要啓動= two.exe one.apple'是嗎? – foxidrive