Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用vbscript替换文件中的字符串时遇到问题_Vbscript - Fatal编程技术网

使用vbscript替换文件中的字符串时遇到问题

使用vbscript替换文件中的字符串时遇到问题,vbscript,Vbscript,我有一个包含以下数据的文本文件 mkdir language 这是我的vbscript,它替换了文本文件中的语言字符串 Const ForReading = 1 Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForReading) strText = objFile.Re

我有一个包含以下数据的文本文件

mkdir language
这是我的vbscript,它替换了文本文件中的语言字符串

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "language", "english,french,spanish")

Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForWriting)
objFile.WriteLine strNewText
objFile.Close
我得到输出mkdir英语,法语,西班牙语,但我想在文本文件输出如下所示

mkdir english
mkdir french
mkdir spanish

如何实现这一点请帮助

在这里尝试以下变化:

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForReading)

strText = objFile.ReadAll
objFile.Close
Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForWriting)

For Each strLanguage In Array("english", "french", "spanish")
    objFile.WriteLine Replace(strText, "language", strLanguage)
Next

objFile.Close
用于从数组生成字符串:

>> c = "mkdir "
>> l = Split("english,french,spanish", ",")
>> WScript.Echo c & Join(l, vbCrLf & c)
>>
mkdir english
mkdir french
mkdir spanish
当然,
c
可能来自文件

(但我怀疑您的简化示例中没有显示您的实际问题)

这也会起作用

Const ForReading = 1
Const ForWriting = 2

Dim langs
langs = Array("english","french","spanish")

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Text.txt", ForReading)

strText = objFile.ReadAll
objFile.Close
tempTxt = ""
strNewText = ""
For Each i in langs
    tempTxt = "mkdir " + i + vbCrLf
    strNewText = strNewText + tempTxt
Next

strNewText = Replace(strText, "mkdir language", strNewText)

Set objFile = objFSO.OpenTextFile("Text.txt", ForWriting)
objFile.WriteLine strNewText
objFile.Close