2016-12-03 17 views
-1

私はスクリプトにユーザー名を手動で入力せずに別のコンピュータのファイルをコピーするためのVBSスクリプトを作成しようとしています。スクリプト内のUSERは現在のユーザーを置く場所です。現在のユーザーを見つける

Set fso = CreateObject("Scripting.FileSystemObject") 
If (fso.FolderExists("C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\")) Then 
    FSO.CopyFile "V.VBS", "C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\" 
    FSO.CopyFile "M.mp3", "C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\" 
Else 
End If 

答えて

-1

インスタンス

Set net = CreateObject("WScript.Network") 
username = net.UserName 

またはあなたができるusrenameを持っていたら%USERNAME%環境変数

Set sh = CreateObject("WScript.Shell") 
username = sh.ExpandEnvironmentVariables("%USERNAME%") 

を拡大することによりため、現在のユーザーの名前を取得するにはいくつかの方法がありますが、次のようにパス文字列を作成します。

Set fso = CreateObject("Scripting.FileSystemObject") 
profile = fso.BuildPath("C:\Users", username) 
startup = fso.BuildPath(profile, "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup") 

ユーザーのAppDataフォルダのサブフォルダで作業しているので、あなたはまた、代わりに%USERNAME%変数の%APPDATA%変数を展開することができます:

Set sh = CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 

appdata = fso.BuildPath("C:\Users", sh.ExpandEnvironmentVariables("%APPDATA%")) 
startup = fso.BuildPath(appdata, "Microsoft\Windows\Start Menu\Programs\Startup") 

別のオプションは、起動時に読み込むことであろうレジストリからフォルダの場所を取得し、返されたパス文字列内の環境変数を展開します。

regpath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Startup" 

Set sh = CreateObject("WScript.Shell") 
startup = sh.ExpandEnvironmentStrings(sh.RegRead(regpath)) 
+0

FSO.CopyFile "V.VBS"、 "startup"はコピーのために機能しません。どうすればできますか? – dgm2004

+0

文字列 '' startup "'の代わりに '' startup''変数を使います。 –

+0

「スタートアップ」以外に間違っていたことがすべて修正されました。バックスラッシュがありませんでした! – dgm2004

関連する問題