0

特定のファイルの存在を確認することから開始するいくつかのアプリケーションのインストールを自動化するHTAを作成し、存在しない場合はフラッシュドライブからローカルに大きなフォルダーをコピーします。更新に使用しているテキストボックスがあります。スクリプトの現在のステータスですが、フリーズしているようで、更新されることはありません。人工的なスリープ機能もうまくいきませんでした。

これがセグメントです

If Not objFSO.FileExists(Office10Dir) Then
MsgBox("Excel is missing")

BasicTextBox.Value = "Office14 Not Detected, Copying Source Files to Local"

Dim objFS, objFolder
Dim OfficeTemp
OfficeTemp = "C:\OfficeTemp"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.CreateFolder(OfficeTemp)
objFS.CopyFolder "OfficeTemp", "C:\OfficeTemp"

BasicTextBox.Value = "Local Temp Directory Created"

ELSE
MsgBox("Excel is Installed")
END IF

ファイルのコピーが完了すると、「LocalTempDirectoryCreated」というメッセージが表示されるだけです。

4

2 に答える 2

0

「CopyFolder」の代わりに、宛先フォルダーを作成してから、ファイルオブジェクトを反復処理することができます。

<script>
Set objFS = CreateObject("Scripting.FileSystemObject")
objOfficeTemp = objFS.GetFolder("C:\OfficeTemp")

If Not objFS.FolderExists("C:\SomeDestination") Then
  objFS.CreateFolder("C:\SomeDestination")
End If

For Each objOfficeTempFile In objOfficeTemp.Files
  'copy the file
  'add some logic that updates your hta
  'if you have nested folders, you'll
  'have to copy them recursively...

  objOfficeTempFile.Copy "C:\SomeDestination"

  updatespan.innerhtml = "Copying file: " & objOfficeTempFile.Name
Next
</script>


<html>
<body>
<span id="updatespan">&nbsp;</span>
</body>
</html>
于 2012-04-06T23:25:51.047 に答える
0

返信のおかげで、「CopyHere」メソッドを使用し、ファイルコピーの進行状況の進行状況バーを更新する定数を宣言して、目的の結果を得ることができました。

'copies files from current dir 'OfficeTemp' to local
Dim objFS, objFolder, oShell, oTarget
Dim OfficeTemp
OfficeTemp = "C:\OfficeTemp"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.CreateFolder(OfficeTemp)

Const FOF_CREATEPROGRESSDLG = &H0&

strTargetFolder = "C:\OfficeTemp" 

Set oShell = CreateObject("Shell.Application")
Set objFolder = oShell.NameSpace(strTargetFolder) 

objFolder.CopyHere "OfficeTemp\*.*", FOF_CREATEPROGRESSDLG
于 2012-04-10T19:36:19.473 に答える