所以我最初是在批量写这个,但可用于ASCII的令牌数量太小了,我想它只允许26个,我需要35个管道留在我的输出文件。VbScript在35管道修剪尾随管道文件
我是VBScript的新手,但基本上我希望它读取原始文件,做一些魔术来选择文件中的第一个字符到最后35个管道(以及之间的所有内容,即使在两者之间的空间管道是空白的)。然后将该文件输出到另一个文件,同时保留原始文件的完整性。
这是到目前为止我的代码:
' **************
' ** Anthony B.
' **************
' ** PipeDropper
' **************
Dim WshShell, oExec
Set wshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInputFile = objFSO.OpenTextFile("C:\Users\aborgetti\Desktop\Pipe Delimiter Project\oauthrn.cms",1)
Set objOutputFile = objFSO.OpenTextFile("C:\Users\aborgetti\Desktop\Pipe Delimiter Project\output.txt",8,True)
Do until objInputFile.AtEndofStream
strcomputer = objInputFile.ReadLine
strCommand = "dsquery computer -name " & strComputer
Set oExec = WShShell.Exec(strCommand)
If (oExec.Status = 0) Then
If (oExec.stdOut.ReadAll = "") Then
objOutputFile.WriteLine(strComputer)
End If
End If
Loop
objInputFile.Close
objOutputFile.Close
问题
此行Set oExec = WShShell.Exec(strCommand)
说,它无法找到真实指定的文件......所以我不知道为什么这是坏。
然后我该从哪里出发?
在此先感谢!
UPDATE
这里是一个行会的文件中,通常是从10到100倍的任何地方......最后的01后需要
RE|922124607|1 |KimV|HOS99999|Y|N|2014-04-02 15:49:14|2014-04-02 15:49:58|Y|2014-04-02 00:00:00|R9815|01|1 |2014-04-02 00:00:00|493.90||||2016-04-02|N||HOS99999|||06|PROV99999|2014-04-02 15:48:20|2014-04-02||R9815|2014-04-02 00:00:00|2016-04-02 00:00:00||||||98960|06 |08|6|6|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||02|||||||Z4|2014-04-02 15:49:58|04|001|01|***|PMER|***|***|2013-08-01||||||||||||||||||||||||||||||||||||||||
一切去...所以:
|***|PMER|***|***|2013-08-01||||||||||||||||||||||||||||||||||||||||
应该是:
Start of line ... |***|PMER|***|***|2013-08-01
你可以举一个例子,看看你想要提取什么样的行吗? – shahkalpesh
我没有看到上面的任何东西,甚至试图测试一个字符,看它是否是一个管道。你有90%...继续前进。你读这行代码,而是循环行(或者只是读一个字符),并检查每个字符是否是一个管道,随着你的增加一个计数器。 –
另外从你的第二个问题,我不明白这是如何涉及到第一个?这与“|”的数量无关到目前为止阅读的字符如果它失败了,那么它是通过传入的命令来做的,或者说,无论什么“strComputer”是用于dquery命令还是传入的命令。 –