怎樣使命令行參數能支持長文件名?


如果將多個選中文件作為命令參數傳給程序,我們知道它是用空格隔開各個文件名了.這樣就出現問題,長文件名中是可以有空格的,那就不好區分作為分隔符的空格和文件名里的空格了.那么怎樣使這樣的命令行參數可以不與長文件名發生沖突?

8 个解决方案

#1


文件名不能包含下列字符之一:
/\:<>|"*?
由於\會在路徑中使用,建議使用其他幾個作為分隔符。

#2


建議把文件名先讀到某變量中,再去做

#3


命令行參數當然支持長文件名,這不是由你的程序決定的事情,而只是必須你要告訴系統,你需要傳遞長文件名!
常見設定傳遞文件名做命令行參數的可能用途就是:通過注冊表讓自已程序關聯特定文件類型。
一般寫入鍵值類似這種形式:{app_path}\myprog.exe %1
這樣寫是不支持長文件名的,
換種寫法:"{app_path}\myprog.exe" "%1"
多個引號就可以了^_^


#4


一般不能

#5


那要是有多個文件同時傳送到命令行參數中,被批量地處理,這些文件名可以被自動正確地分開(如果文件名中有空格的話)嗎?

#6


我用加引號的寫法寫注冊表,在右鍵菜單中添加一個項目,該項將執行一個程序,只有一句:MsgBox Command().執行時發現即使選擇多個文件它也是一個文件名一個MsgBox地顯示的,那是不是說明它把一個參數分給一個程序實例而不是在一個程序中處理所有的參數?那樣的話不是我想要的效果啊.

#7


這方法測試多文件不對!
資源管理器對多選文件的右鍵操作,是每個文件分別調用關聯程序的。

要實現這種效果,你需要自已建立程序自身間的通訊,當發現自身已在運行時,就不再啟動新實例,而是簡單的將命令行傳給最先啟動的實例再將自己關閉。先啟動的實例接到傳來的命令行參數,自動打開。

#8


只能這樣啊?還是小有點麻煩的。
吃一塹長一智謝謝啦啊!

順便再問個問題:在文件夾里的空地處右擊彈擊的菜單如果想向其中添加項目該怎么做?

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com