2015-12-17 70 views
1

我想讓程序刪除自己,我使用單獨的批處理文件來做到這一點。我正在使用此代碼:如何使vba文件自己刪除

Process.Start("cmd.exe", 
    "/C choice /C Y /N /D Y /T 1 & Del " + Application.ExecutablePath) 
Application.Exit() 

但它不能刪除名稱中有空格的文件。我如何將Application.ExecutablePath與「」包圍起來,最後看起來像是「FileName」?

+0

在批處理文件中,如果文件中有空格,則必須用「引號」括住它。 – Squashman

+0

Nevermind我使用了代碼quote = Chr(34) applicationPath = fso.GetFileName(Application.ExecutablePath) Process.Start(Desktop3&「\ UPDATE.exe」) Process.Start(「cmd.exe」, 「/C選擇/ CY/N/DY/T 1&Del「+報價&applicationPath報價) Application.Exit() –

回答

2

我想通了,我用這個代碼:

Dim applicationPath As String 
Dim quote As String 
quote = Chr(34) 
applicationPath = fso.GetFileName(Application.ExecutablePath) 
Process.Start("cmd.exe", 
    "/C choice /C Y /N /D Y /T 1 & Del " + quote & applicationPath & quote) 
Application.Exit() 

有解決問題了很多額外的代碼。所以我把它切成這樣:

Dim quote As String 
quote = Chr(34) 
Process.Start("cmd.exe", 
    "/C choice /C Y /N /D Y /T 1 & Del " + quote & Application.ExecutablePath & quote) 
Application.Exit() 
+1

歡迎來到Stack Overflow!我很高興你明白了這個問題。請記住將您的答案標記爲可接受的解決方案! –