2014-07-03 21 views
0

我需要在命令提示符下更改特定文件擴展名的默認關聯程序。我有一個擴展名爲.ChangeSetInfo的文件,它基本上是一個xml文件。我想將「Xml Notepad 2007」作爲此類擴展的默認程序。爲此我寫了一個小批處理文件。內容如下:在Windows 7中不能使用Assoc命令

assoc .CHANGESETINFO= 
ftype CHANGESETINFO File= 
assoc .CHANGESETINFO=CHANGESETINFO File 
ftype CHANGESETINFO File="C:\Program Files\XML Notepad 2007\XmlNotepad.exe" 

當我執行這個批處理文件,然後似乎一切正常,因爲我沒有得到任何錯誤消息。但之後,當我雙擊擴展名爲.ChangeSetInfo的文件時,xmlnotepad程序啓動,但文件沒有打開。但是如果我使用Xml記事本窗口中的「文件打開」選項,該文件將正確顯示。

有人可以幫助我嗎?

我正在使用Windows 7 Professional Service Pack 1.我也在此係統上使用管理員帳戶。

回答

1

如果您的系統上使用assoc .doc,它應該返回類似Word.Document.8。打字ftype Word.Document.8產生類似

Word.Document.12="C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE" /n "%1" /o /o "%u" 

的「%1」,表明它應該打開的命令行的第一個參數傳遞的文件。它周圍的引號確保該文件名中的任何嵌入空格不會被解釋爲命令分隔符。

因此,解決您的問題將是改變ftype語句來完成相同的:

ftype CHANGESETINFO File="C:\Program Files\XML Notepad 2007\XmlNotepad.exe" "%1" 

作爲一個說明:如果是我,我會改變兩者assocftype使用ChangeSetInfoFile ,這是因爲它更容易閱讀並刪除「CHANGESETINFO」和「File」之間的嵌入空間。

+0

感謝您的回覆。是的你是對的,我需要添加命令的「%1」參數工作。但是我還想補充說批處理文件不允許添加「%1」。它在註冊表中顯示「」後。所以我放棄了使用.bat文件的想法,目前我直接在cmd.exe中執行命令,現在可以正常工作。無論如何非常感謝您的回覆。這真的很有幫助。 – Joy

+0

謝謝,圍繞論點的雙引號是重頭戲。 – Sabuncu

+0

我會使用'「%〜1」'去除任何可能存在的引號以避免引用兩次。 (並且來自[Octaviour](http://stackoverflow.com/users/6474367/octaviour),他沒有足夠的代表來添加註釋):*用於批處理文件中使用另一個'%'轉義'%': ' 「%% 1」'* – Stephan