如何从 Wscript.Echo strLine 创建文件

Posted

技术标签:

【中文标题】如何从 Wscript.Echo strLine 创建文件【英文标题】:How to create a file from Wscript.Echo strLine 【发布时间】:2013-05-22 20:55:32 【问题描述】:

从 VBScript 开始:

此脚本从文本文件中检索文件路径并在屏幕上显示输出:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\temp\log.txt", ForReading)
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
For Each strLine in arrFileLines
WScript.Echo strLine
Next

WScript.Echo strLine 在屏幕上显示文件名

有没有办法创建一个与 strLine 中包含的值同名的文件?

我试过跑步:

cscript vbscript > strLine

但它只创建一个名为“strLine”的文件,而不是存储在 strLine 中的文件

感谢任何帮助

谢谢

【问题讨论】:

【参考方案1】:

使用Set tsX = objFS.CreateTextFile(strLine, True) - 在阅读the docs. 中的此方法后

更新:

在代码中:

Option Explicit
Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject")
Dim tsNames : Set tsNames = goFS.OpenTextFile("fnames.txt")
Do Until tsNames.AtEndOfStream
   Dim tsX : Set tsX = goFS.CreateTextFile(tsNames.ReadLine())
   tsX.WriteLine "Abracadabra"
   tsX.Close
Loop
tsNames.Close

【讨论】:

我将它添加到脚本的底部,如下所示: Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("c:\temp\log.txt", ForReading ) Const ForReading = 1 Dim arrFileLines() i = 0 Do Until objFile.AtEndOfStream Redim Preserve arrFileLines(i) arrFileLines(i) = objFile.ReadLine i = i + 1 循环 objFile.Close For Each strLine in arrFileLines WScript.Echo strLine Next DIM objFS Set tsX = objFS.CreateTextFile(strLine, True) 但我一定还是遗漏了什么? 我明天试试这个,告诉你我的进展情况【参考方案2】:

如果您想使用回显值,您可以在 cmd 中执行类似的操作:

for /f "tokens=*" %f in ('cscript //NoLogo vbscript') do @(
  if not exist "%~dpf" md "%~dpf"
  if not exist "%~ff" type nul>"%~ff"
)

【讨论】:

刚试过这个。从 c:\apps 运行 vbs 脚本并获得以下信息: 子目录或文件 c:\apps\ 已存在。文件名、目录名或卷标语法不正确它在 c:\apps 中创建了一个名为“Copyright Microsoft Corporation.....”的文件 这是标志信息。使用 //NoLogo 选项运行 cscript.exe 以抑制它。【参考方案3】:

只需要一行:

Set file = objFSO.CreateTextFile("C:\Temp\" & strLine)    ' & extension - if needed eg .txt

根据需要更改路径

通过以下方式将文本添加到文件中:

file.WriteLine    Line           'line by line

或者如果你有完整的文本:

file.Write        CompleteText

完成后不要忘记关闭文件

file.close

【讨论】:

以上是关于如何从 Wscript.Echo strLine 创建文件的主要内容,如果未能解决你的问题,请参考以下文章

如何停止在 Windows 中运行的 vb 脚本

C语言小白求指导srcstr[STRLINE-1] = '\0';

vbscript

自动提交代码

python操作文件注意点

C#怎样读取HTML文件