ファイルサーバーからファイルをデスクトップにコピーする方法

このQ&Aのポイント
  • ファイルサーバーからファイルをデスクトップにコピーするためのVBSを作成しています。パソコンごとに異なるデスクトップの場所を特定する方法について教えてください。
  • VBSファイルを使用して、ファイルサーバーのファイルをパソコンのデスクトップにコピーしたいです。デスクトップの場所を特定するために、WshShell.SpecialFoldersを使用する方法を教えてください。
  • ファイルサーバーからファイルをデスクトップにコピーするためのVBSを作成していますが、パソコンごとにデスクトップの場所が異なるため、その方法を探しています。WshShell.SpecialFoldersを使用することで、特定のパスを取得できるようですが、具体的な使い方を教えてください。
回答を見る
  • ベストアンサー

コピーするVBS

ファイルサーバーからファイルをデスクトップにコピーするVBSを下記のように作成しています。 Set objFSO= CreateObject("Scripting.FileSystemObject") objFsoCopyFile("\\server\public\test.mdb","C:\Documents and Settings\user\デスクトップ",true) この中で、「C:\Documents and Settings\user\デスクトップ」はパソコンごとに異なりますので、 それぞれのPCのデスクトップをしてする方法を探しています。 ネットで、デスクトップという類のフォルダの取得として Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.SpecialFolders("Desktop") を絡めれば出来るようなことがありましたが、使い方をどなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • maesen
  • ベストアンサー率81% (646/790)
回答No.1

一応確認ですが、ログオンしているユーザーのデスクトップっていうことで良いんですよね。 難しい話は特にないと思います。 プロパティの結果を変数に入れるなどして使用すればいいでしょう。(直接書いてもいいですが) 書かれているサンプルを積極的に使わせて頂くと、 Dim WshShell Set WshShell = CreateObject("WScript.Shell") strDesktop = WshShell.SpecialFolders("Desktop") Set objFSO= CreateObject("Scripting.FileSystemObject") objFsoCopyFile("\\server\public\test.mdb",strDesktopPath,true) こんな感じでしょうか。 ちなみにVBスクリプトでは変数の型宣言は出来ないので 「Dim WshShell As Object」はだめです。

kapatool
質問者

お礼

ありがとうございます。早速試してみましたが Windows Script Host 行:6 文字:73 エラー:subプロシージャを呼び出すときに、カッコをつかうことができません コード:800A0414 ソース:Microsoft VBScriptコンパイルエラー というメッセージが出ます。 よろしくお願いします。

関連するQ&A

  • 特殊フォルダ内の検索とショートカット作成について

    こんにちわ。VBSをはじめて間もないのですが、宜しくお願いします。 現在、C:\Documents and Settings\<各ユーザー名>\SendTo 内を検索し、 該当の.lnkがあった場合に、全てユーザーのリンク先を変更するというプログラムを作成しています。 WshShell.SpecialFolders("SendTo")を利用した場合、ログオンしている ユーザーの.lnkは変更できるのですが、他のユーザーの.lnkが変更できません。 また、テストをおこなっている端末により、「C:\Documents and Settings\Administrator」の フォルダの読み込み?ができずにエラーになってしまいます。 C:\Documents and Settings\Administrator内のファイルへのアクセス 権の変更? と全ユーザーのフォルダ内の特定ファイルの変更について教えてください。宜しくお願い致します。 ----------------------------------------------------- Const Find_Dir ="C:\Documents and Settings\" Dim strFileList Set objFso = CreateObject("Scripting.FileSystemObject") Set objFol = objFso.GetFolder(Find_Dir) Set colFiles = objFol.Files Set colFolders = objFol.subFolders FileFind(objFol) Set objFol = Nothing Set objFso = Nothing wscript.Echo("完了") Sub FileFind(objFol) Dim objFile, objSubFolder For Each objFile In objFol.Files    if (objFile.Name = "テスト.lnk") then Ioc() else wscript.Quit end if Next For Each objSubFolder In objFol.SubFolders FileFind(objSubFolder) Next End Sub Sub Ioc() Set WshShell = Wscript.CreateObject("Wscript.Shell") IocSend = WshShell.SpecialFolders("SendTo") srtCutName = IocSend & "\テスト.lnk" Set SIcon = WshShell.CreateShortcut(srtCutName) with SIcon .TargetPath ="\\test\test.exe" .HotKey="" .Arguments ="" .Description ="" .WorkingDirectory="" .IconLocation = "shell32.dll,44" .WindowStyle= 1 .Save end with end Sub

  • OpenTextFile で書き込みできません。

    dim ObjFSO,ObjTS 'オブジェクトを作成します。 Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject") 'ファイルを開きます。 Set ObjTS = ObjFSO.OpenTextFile(filename,1,false) filenameにはC:\Documents and Settings\○○○\デスクトップ\test.csvが入っています。 サーバーのパスにtest.csvを持っていくと問題なく動作しますが、それ以外デスクトップからだと「書き込みできません。」とエラーメッセージができません。 どうしたらいいでしょうか? よろしくお願い致します。

  • display.vbsというファイルがstartupフォルダにあるので

    display.vbsというファイルがstartupフォルダにあるのですが? display.vbsというファイルがすべてのプログラムのstartupフォルダにあるのですが、これは何でしょうか?名前からして気持ち悪いので正体を知っている人がいたら教えて欲しいです。 メモ帳で開いたら下記のようなソースになっていました。 よろしくお願いします。 -------------------------------------------- ' Self destructive VBScript for changing optimal resolution ' Set optimal resolution Set objShell = Wscript.CreateObject("Wscript.Shell") objShell.Run "c:\windows\options\cfgdisp.exe /optimum", 7, True ' Now destroy itself Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile("C:\Documents and Settings\All Users\Start Menu\Programs\Startup\display.vbs") --------------------------------------------

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • VBS

    VBSであるファイルを1行ずつ読み込み、その読み込んだ値を ある別のファイルにリダイレクトしたいのですが、 どのように書けばよいか教えてください。 下記のように、echoでは出すことができるのですが、 ファイルにリダイレクトというのができません。 よろしくお願いします。 ==== sample shell ========================= Option Explicit On Error Resume Next Dim objFSO ' FileSystemObject Dim objFile ' ファイル読み込み用 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If Err.Number = 0 Then Set objFile = objFSO.OpenTextFile("d:\dr1.txt") If Err.Number = 0 Then Do While objFile.AtEndOfStream <> True WScript.Echo objFile.ReadLine Loop objFile.Close Else WScript.Echo "ファイルオープンエラー: " & Err.Description End If Else WScript.Echo "エラー: " & Err.Description End If Set objFile = Nothing Set objFSO = Nothing ============================================================

  • VBSでルートフォルダ名を取得したい

    (I)ドライブにUSBメモリーがあってルートフォルダ名がABCだとします。 VBSでルートフォルダ名を取得したくてコード書いてみたんですがMsgBoxには空欄しかでません。なにが間違っているのか教えて頂けないでしょうか? dim objFSO dim objDrive Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objDrive = objFSO.GetDrive("I") MsgBox objDrive.RootFolder.name

  • vbsスクリプト作成について

    いつもありがとうございます。 今回、知識がないのですが下記のような処理のVBSを作成したく調べております。 (1)test.vbsファイルを実行時にvbsファイルと同じディレクトリに「folder」フォルダを作成 (2)作成した「folder」フォルダにサービス「idsvc」の状態をテキスト形式で「service.txt」として出力 (3)上記と同様の処理(service.txtはリネームする)を現在ログインしているユーザのスタートアップに「start.vbs」として配置 (3)上記処理後、再起動を実施 (4)再起動後、start.vbsを実行後に自動削除 大きく分けて4つの処理を個別に作成して最終1つのファイルとして作成しようと思っております。 なんとかわからいなりに作成してはいるのですが どうしても下記方法がわかりません。 (2)の処理「folder」を作成後、service.txtのパス(最下位行)を変数に入れて出力する方法 (きたないソースで申し訳ないです) ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ' フォルダ作成 '---------------------------------------------- Dim str_Path Dim objFdr Set objFdr = CreateObject("Scripting.FileSystemObject") str_Path = objFdr.CreateFolder(".\folder") Dim WshShell Set WshShell = CreateObject("WScript.Shell") Set objLog = WshShell.Exec("cmd /C ""sc query idsvc | findstr -i state > .\folder\service.txt""") ※サービス出力はvbsでの方法がわからなかったのでcmdを呼び出しています。 (4)再起動後の処理にて、再起動前に作成したフォルダに「service.txt」を出力する方法 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ objVBSFile.WriteLine("On Error Resume Next") objVBSFile.WriteLine("Dim WshShell") objVBSFile.WriteLine("Set WshShell = CreateObject(""WScript.Shell"")") objVBSFile.WriteLine("Set objLog = WshShell.Exec(""cmd /C """sc query idsvc | findstr -i state >C:\services.txt"""")") objVBSFile.WriteLine("Set objFSO = CreateObject(""Scripting.FileSystemObject"")") objVBSFile.WriteLine("objFSO.DeleteFile WScript.ScriptFullName") 他にもわからないことはありますが、調べてなんとかなるとおもっておりますが 上記についてはVBSの理解不足なため、つかめません。 申し訳ありませんが、アドバイス頂けないでしょうか。 以上、宜しくお願い致します。

  • ASPからVBS実行時の権限

    ASPからWscript.Shellを使ってVBSを実行しているのですが、 ASP中のDBオープンには問題はないのですが、test.vbs中でオープンできません LOGファイルは"dbConnection-OK"までになっています。 権限の問題かどうかはわからないのですが、原因は何でしょうか? DBはODBC経由のSQLServerです。 ---------ASP-------------------------------------- <% Dim dbConnection Set dbConnection = CreateObject("ADODB.Connection") dbConnection.Open "testdb" dbConnection.Close Set dbConnection = Nothing '上記OPENに関して問題なし Dim WshShell Set WshShell = CreateObject("Wscript.Shell") WshShell.Run "cscript.exe e:\test.vbs 123", 0, True Set WshShell = Nothing %> <html> <head> <meta http-equiv="Cache-Control" content="no-cache" /> <title>Pipot.to</title> </head> <body> OK </body> </html> ---------test.vbs-------------------------------------- Dim ObjFSO Dim ObjTS Set ObjFSO = CreateObject("Scripting.FileSystemObject") Set ObjTS = ObjFSO.CreateTextFile("e:\log.txt") ObjTS.Write "LOG開始" Dim dbConnection Set dbConnection = CreateObject("ADODB.Connection") ObjTS.Write "dbConnection-OK" dbConnection.Open "testdb" ObjTS.Write "OPEN-OK" dbConnection.Close Set dbConnection = Nothing ObjTS.Close Set ObjTS = Nothing Set ObjFSO = Nothing

  • VBScriptでXcopyしたいのですが

    こんにちは。 OSはWIN2K Proを使用しています。 WSHからXcopyを実行しようと思い 以下のように記述しました。 ********************************************** Option Explicit Dim WshShell Const Moto = "C:\Documents and Settings\user\デスクトップ\元" Const Saki = "C:\Documents and Settings\user\デスクトップ\先" Set WshShell = CreateObject("WScript.Shell") WshShell.Run "xcopy Moto Saki /e /c /i /q /h /k /y",0,true ********************************************** ですが、うまく動作しません(エラーはでませんがコピ ーされません)。 ダブルクォーテーションマークをいろいろ追加したり したのですがうまくいきません。 正しいスクリプトの記述とダブルクォーテーションの つけ方の規則など、どなたかご教授願います。

  • vbsのショートカット作成で、引数に不具合がでる

    あるプログラムに対し、ショートカットを vbsで作成したいのですが、 リンク先の引数で不具合が発生します。 具体的には KeePassというアプリケーションで、 Database.kdeを開き、パスワードにpassを指定する、というものです。 "C:\...\KeePass.exe" "Database.kdb" -pw:"pass" vbsのソースはこちらです ------------------------------------------------------------ Dim WshShell, fso, ShrCut Set WshShell = WScript.CreateObject("WScript.Shell") Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set ShrCut = WshShell.CreateShortcut(WSHShell.CurrentDirectory & "\KeePass.lnk") ShrCut.TargetPath = WSHShell.CurrentDirectory & "\KeePass.exe"" ""Database.kdb"" -pw:""pass" ShrCut.WorkingDirectory = WSHShell.CurrentDirectory ShrCut.IconLocation = WSHShell.CurrentDirectory & "\KeePass.exe" ShrCut.Save ------------------------------------------------------------ ショートカット作成後に実行すると、"passを探しています と表示されますが、 ショートカットのプロパティを開き、リンク先をコピペで更新すると、動作します。 宜しくお願い致します。