1

Hiya Guys テキスト ファイルを読み取り、それらの場所をソースの場所として使用し、ファイルを別の場所にコピーする方法を探しているファイルの場所を含むテキスト ファイルがあります。

私は遊んでいて、動的配列について見てきましたが、配列の内容を変数に入れてソースの場所として読み取る方法を理解できないようです。

私が今までやってきたことの例

Dim TxtFile

dim strDestinationFolder

strDestinationFolder = "\\SERVER\DESTLOGS"

TxtFile = "c:\windows\temp\SOFTWARELOG.txt"


Dim fso:    Set fso = CreateObject("Scripting.FileSystemObject")
Dim f:  Set f = fso.OpenTextFile(TxtFile)

Do Until f.AtEndOfStream

WScript.Echo "PSTLocation: " & f.ReadLine   ; I can read each line here in the txt file 
fso.CopyFile strDestinationFolder, f.REadline  

Loop

私も試してみましたが、最も信頼できるように見えますが、どこから始めればよいかわかりませんか?

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
(TxtFile, ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
arrServiceList = Split(strNextLine , ",")
WScript.Echo "Server: " & arrServiceList(0)
WScript.Echo "Service: " & objTextFile
For k = 1 to UBound(arrServiceList)
WScript.Echo vbTab & "Service: " & arrServiceList(i)


Next
Loop

vbsでこれを行うべき最善の方法について、ガイダンスをお願いします。

ありがとう

4

1 に答える 1

3
WScript.Echo "PSTLocation: " & f.ReadLine
fso.CopyFile strDestinationFolder, f.REadline

コードは、ファイルから読み取った 1 行をエコーし​​、ファイルから読み取った次の行に宛先フォルダーをコピーしようとします。

ファイルから読み取った行で複数のことを行いたい場合は、読み取った行を変数に割り当ててから、その変数を使用する必要があります。また、CopyFileメソッドの引数を切り替える必要があります。ソースが最初に来て、次に宛先が来ます。さらに、宛先をフォルダーにしたい場合は、末尾にバックスラッシュが必要です (そうしないと、フォルダーをファイルで上書きしようとすると、エラーが発生します)。

Do Until f.AtEndOfStream
  line = Trim(f.ReadLine)
  WScript.Echo "PSTLocation: " & line
  If fso.FileExists(line) Then fso.CopyFile line, strDestinationFolder & "\"
Loop

読み取り行のTrim()誤った先頭/末尾のスペースを説明します。ファイルを操作する前に、ファイルが実際に存在するかどうかを確認することをお勧めします。

編集:既存の宛先ファイルを検出し、実行中の番号をファイル名に追加するには、次のようにしてください:

basename  = fso.GetBaseName(line)
extension = fso.GetExtensionName(line)

destinationFile = fso.BuildPath(strDestinationFolder, basename & "." & extension)

i = 1
Do While fso.FileExists(destinationFile)
  filename = basename & i & "." & extension
  destinationFile = fso.BuildPath(strDestinationFolder, filename)
  i = i + 1
Loop

fso.CopyFile line, destinationFile
于 2013-09-11T17:28:02.410 に答える