2017-06-29 61 views
1

對不起,我遇到了OpenTextFile的問題 很久以前我創建了一個腳本,但之後它開始給我提出問題,我很困惑,爲什麼它這樣做,它是清除文本文件給我的錯誤Vbscript - OpenTextFile不能正常工作

Set objArgs = WScript.Arguments 
myFile = objArgs(0) 
numberofTXT = objArgs(1) 
line = objArgs(2) 

Set f = CreateObject("Scripting.FileSystemObject").OpenTextFile(myFile, line) 
d = f.ReadLine 

Set objFSO=CreateObject("Scripting.FileSystemObject") 
outFile=numberofTXT 
Set objFile = objFSO.CreateTextFile(outFile,True) 
objFile.Write d & vbCrLf 
objFile.Close 

我有那麼在cmd中,如果我運行LOL.txt Hi.txt的ARGS命令1所花費的1,並把它在

Set f = CreateObject("Scripting.FileSystemObject").OpenTextFile(myFile, line) 

與線路有價值
然後我把它讀文本文件

d = f.ReadLine 

然後我把它寫在文件「Hi.txt」

Set objFSO=CreateObject("Scripting.FileSystemObject") 
outFile=numberofTXT 
Set objFile = objFSO.CreateTextFile(outFile,True) 
objFile.Write d & vbCrLf 
objFile.Close 

注:我是新來這個形式,我想示例,請

編輯:它不與更多的工作,然後1號線和文本文件還有更多然後1個線

FILE試圖與使用:https://pastebin.com/Cd5z8BHH

+0

所以,你要讀LOL.txt文件中的所有行,並將其寫入命令行cscript的Hi.txt? – Hackoo

+0

我想從Lol.txt中讀取一行,並將其寫入Hi.txt,例如我想從Lol.txt向Hi.txt中寫入2行 – DatChicken040

回答

0

讀取並應用OpenTextFile Method參考:

打開指定的文件,並返回一個TextStream對象,可以是 用於讀,寫,或追加到該文件。

語法

object.OpenTextFile(filename[, iomode[, create[, format]]]) 

參數

  • object  必需。對象始終是FileSystemObject的名稱。
  • filename要求。用於標識要打開的文件的字符串表達式。
  • iomode  可選。可以是三個常量之一:ForReading,ForWritingForAppending
  • create  可選。指示在指定的文件名不存在時是否可以創建新文件的布爾值。如果創建了新文件,則值 爲True,如果未創建,則爲False。如果省略了 ,則不會創建新文件。
  • format  可選。三個三態值中的一個用於指示打開文件的格式(TristateTrue = -1打開文件爲 Unicode,TristateFalse = 0打開文件爲ASCII, TristateUseDefault = -2以打開文件爲系統默認值)。如果省略了 ,則文件以ASCII形式打開。

設置

iomode參數可以有任何的下列設置:

Constant  Value Description 
ForReading 1  Open a file for reading only. You can't write to this file. 
ForWriting 2  Open a file for writing. 
ForAppending 8  Open a file and write to the end of the file. 

CreateTextFile Method讀取參考爲好。然後,下面評論代碼片段可以幫助:

Const ForReading = 1 
Set objArgs  = WScript.Arguments 
myFile   = objArgs(0)   ' file to read 
numberofTXT  = objArgs(1)   ' file to write 
line    = objArgs(2)   ' line serial number to write into output file 
             ' (or number of lines?) 
Set objFSO  = CreateObject("Scripting.FileSystemObject") 

outFile=numberofTXT 
Set objFile = objFSO.CreateTextFile(outFile,True) 

Set f = objFSO.OpenTextFile(myFile, ForReading) 

lineindex = 1 
Do until f.AtEndOfStream 
    d = f.ReadLine 
    if lineindex = line Then  ' only take the line-th line 
     objFile.Write d & vbCrLf ' or objFile.WriteLine d 
     Exit Do ' transfers control to the statement immediately following Loop statement 
    End If 
    lineindex = lineindex + 1 
Loop 

objFile.Close 
f.Close