首页 > 解决方案 > VBS InputBox,无文件扩展名的输出

问题描述

我有两个提示,应该由用户填写。

目标是,用户填写两个提示,输出应该得到两者的组合作为文件名。

例如,用户在第一个 InputBox 中键入“Ryan”,在第二个 InputBox 中键入“Smith”。因此,输出应该是一个名为“Ryan_Smith”的文件,但没有文件扩展名。

目前它保存在“edit.txt”输出文件中,因为我不知道如何按照我的意愿完成它。

Sub MyInputBox()
    Do
        firstNameInput = InputBox("First Name")
    Loop Until firstNameInput <> ""

    Do
        lastNameInput = InputBox("Second Name")
    Loop Until lastNameInput <> ""

    RootFolder = Ws.ExpandEnvironmentStrings("%USERPROFILE%\Desktop")
    MyFile = RootFolder & "\Edit.txt"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fileStream = fso.OpenTextFile(MyFile,ForAppending,True)
    fileStream.WriteLine "First Name: " & firstNameInput
    fileStream.WriteLine "Second Name: " & lastNameInput
    fileStream.WriteLine String(30,"*")
    fileStream.Close
End Sub

Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function

标签: vbscript

解决方案


您可以将CreateTextFile用于您的目的。

例如:

Sub MyInputBox()
    dim WshShell, firstNameInput, lastNameInput, fso, fileStream, MyFile, RootFolder
    set WshShell = WScript.CreateObject("WScript.Shell")
    Do
        firstNameInput = InputBox("First Name")
    Loop Until firstNameInput <> ""

    Do
        lastNameInput = InputBox("Second Name")
    Loop Until lastNameInput <> ""

    RootFolder = WshShell.ExpandEnvironmentStrings("%USERPROFILE%\Desktop")
    MyFile = RootFolder & "\" & firstNameInput & "_" & lastNameInput
    '                         ^------------------------------------^----- Notice this filename creation
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fileStream = fso.CreateTextFile(MyFile)
    fileStream.Close
    set WshShell = nothing
    set fso = nothing
    set fileStream = nothing
End Sub

call MyInputBox()

推荐阅读