如何从 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 创建文件的主要内容,如果未能解决你的问题,请参考以下文章