windows - 如何让vba文件自行删除

标签 windows vba batch-file cmd

我正在尝试让一个程序 self 删除,我正在使用一个单独的批处理文件来完成它。我正在使用这段代码:

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

但是不能删除名称中有空格的文件。如何用“”将 Application.ExecutablePath 括起来,使其最后看起来像“FileName”?

最佳答案

我想通了,我使用了这段代码:

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()

关于windows - 如何让vba文件自行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344953/

相关文章:

python - 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的 C++ 应用程序

excel - 将网站导入/抓取到 excel

excel - 仅将筛选后选定的表格列复制到新工作表

batch-file - 将 vbs 是/否框代码添加到批处理文件

windows - 如何写入包含双引号而不换行的文件文本

python - Windows 上的符号链接(symbolic link)

windows - 如何在 Windows 中创建进程而不是等待它完成?

windows - 如何使用 bat 文件创建注册表项

windows - 使用 PowerShell 将击键发送到特定窗口

excel - 查找两个 ID 之间的匹配项