• 締切済み

DOSバッチファイルをvbsに移植したい

こんにちは。 vbsの質問なのでちょっとVBから離れるかと思いますが。 @echo off net use \\server1\Users xcopy "\\server1\Users\myname\work\genshi.xls" "C:\Documents and Settings\myname\デスクトップ\folder" /i /s net use /delete exit をvbsで書き表したいのですがわかりません。 どなたか移植していただけませんか。

みんなの回答

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.2

xcopy ということはディレクトリごとのコピーでしょうか? そうであれば、このようなコードで実現可能かと思います。 変数には必要な値を代入して下さい。 strPassword を strPassword="" としておくと入力を促す InputBox が出ます。 VBS でのみ書くとこのようにネットワークドライブとしてあつかうことになります。 ネットワークドライブに割り当てたくない場合はシェルを呼び出して「net use ...」とすることになります。 メッセージが邪魔な場合は「WScript.Echo」の前に「'」をつけてコメントにしてください。 ' Dim objNetwork Dim objFileSystem Dim strDriveLetter Dim strServerDirectory Dim strUserID Dim strPassword Dim strSourceDirectory Dim strDestinationDirectory ' -- account -- strUserID = "user" strPassword = "pass" strDriveLetter = "Z:" strServerDirectory = "\\server1\Users" strSourceDirectory = "\\server1\Users\myname\work\genshi.xls" strDestinationDirectory = "C:\Documents and Settings\myname\デスクトップ\folder" ' ------- If strPassword = "" Then strPassword = InputBox("Your password","Password") End If If strPassword <> "" Then ' create object Set objNetwork = CreateObject("WScript.Network") Set objFileSystem = CreateObject("Scripting.FileSystemObject") ' connect WScript.Echo "Connect: " & strDriveLetter & " = " & strServerDirectory objNetwork.MapNetworkDrive strDriveLetter, strServerDirectory, False, strUserName, strPassWord ' copy WScript.Echo "Copy: " & strSourceDirectory & " => " & strDestinationDirectory objFileSystem.CopyFolder strSourceDirectory, strDestinationDirectory, True ' disconnect objNetwork.RemoveNetworkDrive strDriveLetter, True WScript.Echo "Disconnected: " & strDriveLetter set objFileSystem = Nothing set objNetwork = Nothing WScript.Echo "End" Else WScript.Echo "Empty Password" End If ' ------ # 他にもこの質問サイトを検索すればこれよりはるかにマシなスクリプトがあると思われます。 > どなたか移植していただけませんか。 # こういう丸投げはよろしくないかと思いますが?

noname#221368
noname#221368
回答No.1

 最近は「DOS や bat」と聞いても、「?」というのが大勢だと思います。自分は DOS 経験者ですが、その頃はネットワークなんて「夢のまた夢」だったので、net use などのコマンドは自信がありません。  恐らくネットワークを通じてファイルをコピーしたい、という事だ思いますが、実質3行のコマンドなので、1行ごとに何をやってるのか、注釈を付けられてはいかがでしょうか?  その方が、応えがつきやすいと思います。

sherman
質問者

お礼

ご回答ありがとうございます。 net use \\server1\Users-----server1に接続する xcopy "\\server1\Users\myname\work\genshi.xls" "C:\Documents and Settings\myname\デスクトップ\folder" /i /s -----genshi.xlsをデスクトップ上にfolderというフォルダーを作ってそこに入れる net use /delete------server1の接続をきる という意味です。

関連するQ&A