スキップしてメイン コンテンツへ

 none
SolutionAcceleratorsでUSBブートによるWindows7を配布について RRS feed

  • 質問

  • お世話になります。

    ネットワーク経由より速そうなのでUSBブートでWindows7の配布をしようとしているのですが、機種によってはDVD-ROMドライブ内蔵かどうかでUSBメモリがEやFドライブと変わってしまうので、LiteTouch.wsfに以下を挿入して、EかFでパスが指定されているbootstrapを置き換えようとしているのですが、エラーになってしまいます。あまりプログラミングは得意ではないのでどこが間違っているのか教えていただけないでしょうか?

    <エラーの内容>

    X:\Deploy\Scripts\LiteTouch.wsf

    Error: Cannot use parentheses when calling a Sub

    Code: 800A0414

    Source: Microsoft VBScript Compilation error

     <追加したソースコード>


    '==============================================================

     If IsFolderExists("E:\DeploymentShare$") Then
     FileCopy("E:\bootstrap_E.ini", "X:\Deploy\Scripts\bootstrap.ini")
    Else if IsFolderExists("F:\DeploymentShare$") Then
     FileCopy("F:\bootstrap_F.ini", "X:\Deploy\Scripts\bootstrap.ini")
    End if

    '==============================================================

     Function IsFolderExists(ByVal strFolderPath)
      Dim objFso
      Set objFso = CreateObject("Scripting.FileSystemObject")
     
      IsFolderExists = objFso.FolderExists(strFolderPath)

      Set objFso = Nothing
     End Function

    '==============================================================
     
     Public Function FileCopy(ByVal strFrom, ByVal strTo)
      FileCopy = False
     
      On Error Resume Next

      Dim objFso
      Set objFso = CreateObject("Scripting.FileSystemObject")
     
      objFso.CopyFile strFrom, strTo 

      Set objFso = nothing
     
      if Not (Err.Number=0) Then
       Message=CStr(Err.Number) & ":" & Err.Description
       Err.Clear
       Exit Function
      End if

      On Error GoTo 0

      FileCopy = True
     End Function

    2010年7月14日 2:30

回答

  • VB/VBA はほぼわかりませんが、「手続き(sub)を呼び出す際に括弧を記述してはいけません」というエラーなので、括弧を消せばよいのではないでしょうか?

    たとえば、2行目の

    > FileCopy("E:\bootstrap_E.ini", "X:\Deploy\Scripts\bootstrap.ini")

    これは、17 行目の、

    > objFso.CopyFile strFrom, strTo 

    のように、括弧なしで呼び出すか、Call 文を使う必要があるのでは?と思います。

     

    • 回答としてマーク tosaito3 2010年7月14日 4:02
    • 回答としてマークされていない tosaito3 2010年7月14日 4:03
    • 回答としてマーク 山本春海Moderator 2010年7月20日 6:16
    2010年7月14日 3:28

すべての返信

  • VB/VBA はほぼわかりませんが、「手続き(sub)を呼び出す際に括弧を記述してはいけません」というエラーなので、括弧を消せばよいのではないでしょうか?

    たとえば、2行目の

    > FileCopy("E:\bootstrap_E.ini", "X:\Deploy\Scripts\bootstrap.ini")

    これは、17 行目の、

    > objFso.CopyFile strFrom, strTo 

    のように、括弧なしで呼び出すか、Call 文を使う必要があるのでは?と思います。

     

    • 回答としてマーク tosaito3 2010年7月14日 4:02
    • 回答としてマークされていない tosaito3 2010年7月14日 4:03
    • 回答としてマーク 山本春海Moderator 2010年7月20日 6:16
    2010年7月14日 3:28
  • K.Takaokaさま

    ありがとうございます。

    かっこという意味だったのですね。ご指摘どおりFileCopyのかっこを消したところうまく起動しました。

    これでUSBドライブが何にマッピングされても問題なくインストールできるようになったので非常に助かりました。

    ありがとうございました。

    またきかいがありましたらよろしくおねがいします。

    2010年7月14日 4:02