如何在 VBScript 中将文本框写入 .txt?

How do I write text box to .txt in VBScript?

我需要将文本区域(框)值写入 .txt 我在写入 "input.txt" 时权限被拒绝 从文本框中写入 input.txt 时,我的权限被拒绝了。我使用下面的建议进行了编辑,还使用进程资源管理器杀死了 input.txt 的句柄。

使用下面的代码,我现在可以将文本框文本保存到文本文件 input.txt。 我还想出了如何调用批处理文件将该文本更改为加密形式,然后我添加了一个刷新按钮以将更改后的文本打开到第二个文本框中作为最终输出结果,这使得文本现在能够成为密码保存在 input.txt 中后加密,并在通过批处理文件 encrypter.bat 加密后在文件 SR-Encrypted.txt 的第二个文本框中打开,然后使用我添加的刷新按钮刷新页面..

谢谢阿格纳尔!

    <html>
    <script language="vbscript">
option explicit
    Const ForWriting = 2

    Dim objFSO, objFile, strFileName, objshell
    strFileName = "input.txt"
    Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objShell = CreateObject("WScript.Shell")

Sub Submitarea
  Set objFile = objFSO.OpenTextFile(strFileName, 2, True)
  objfile.Write TextFile.Value
  objFile.Close
  MsgBox "Your text has been added to " & strFileName, 64, "Textarea Input"
End Sub
</script>   
</html>
  </head>
    <title>Example</title>
    <script language="VBScript"> 
      Sub test
     set oFSO=CreateObject("Scripting.FileSystemObject")
     set oFile=oFSO.OpenTextFile("SR-Encrypted.txt",1)
     text=oFile.ReadAll
     document.all.ScriptArea.value=text
     Set objFile = nothing
     oFile.Close
      End Sub 
    </script>
  </head>

  <script language="vbscript">
Option Explicit

' This is the Sub that opens external files and reads in the contents.
' In this way, you can have separate files for data and libraries of functions
Sub Include(yourFile)
  Dim oFSO, oFileBeingReadIn   ' define Objects
  Dim sFileContents            ' define Strings

  Set oFSO = CreateObject("Scripting.FileSystemObject")
  Set oFileBeingReadIn = oFSO.OpenTextFile("try.vbs", 1)
  sFileContents = oFileBeingReadIn.ReadAll
  oFileBeingReadIn.Close
  ExecuteGlobal sFileContents
End Sub

' Here we call the Include Sub, then pass it the name of the file we want items from
Include "mySubLib"

</script>
  <body>
    <button onClick="test()">Refresh Message Encrypter-Decrypter</button>
  </body>
</html>
    </head>
 </html>
<body>
    <h1>Write File</h1>
    <p>How to Write to a File.</p>

    <textarea name="TextFile" id="TextFile" rows="20" cols="50"></textarea>

    <input type="button" value="Submit" onclick="Submitarea">

</body>
    <body>

    </body>
</html>

"permission denied" 错误很可能是因为文件已经打开。只有当你真的想写入时才打开文件,并在写入完成后立即关闭它。另外,如果要将文本区域的内容写入文件,您需要实际写入文本区域的内容,而不是字符串 "Txtarea".

改变这个:

Set objFile = objFSO.OpenTextFile(strFileName, 2, True)
Set objShell = CreateObject("WScript.Shell")

Sub Submitarea
  sTxtarea = TextFile.Value
  objfile.Write "Txtarea" & vbCrLf
  MsgBox "Your text has been added to " & strFileName, 64, "Textarea Input"
End Sub

对此:

Set objShell = CreateObject("WScript.Shell")

Sub Submitarea
  Set objFile = objFSO.OpenTextFile(strFileName, 2, True)
  objfile.Write TextFile.Value
  objFile.Close
  MsgBox "Your text has been added to " & strFileName, 64, "Textarea Input"
End Sub

问题就会消失。

如果要附加到输出文件而不是替换其内容,请将 OpenTextFile() 方法的第二个参数从 2 更改为 8。

@ansgar wiechers 的编辑和建议都是正确的,并导致脚本正常运行。请参阅上面的代码以准确解决原始问题。 权限被拒绝是由 input.txt 上的打开句柄引起的。使用进程树我杀死了句柄并且文件正常运行。 ansgar wiechers post 提出的建议修复了代码,这是另一个单独的问题,但有关原始问题的正确代码和信息在 post 中。谢谢。