以编程方式为FTP站点添加“我的网络位置”?

时间:2009-08-20 12:15:01

标签: windows scripting

无论如何,我可以创建一个小的exe文件或批处理文件来在Windows中设置一个新的“我的网络地点”吗?它是一个ftp站点,如果这有任何区别。

XP将主要是目标机器,但如果我能找到适用于Vista的东西那就太好了。

2 个答案:

答案 0 :(得分:0)

我编写此脚本以使用代理服务器连接到FTP。您可以根据自己的需要进行调整。它会提示您尝试访问的文件名和文件夹。只需剪掉你不需要的代码,你应该好好去。

您还需要更改FTP服务器名称变量。快乐的编码:

Option Explicit

Dim objShell, strFTPScriptFileName, strFile2Get
Dim strLocalFolderName, strFTPServerName, strLoginID
Dim strPassword, strFTPServerFolder, strFileToGet, returnCode


'Customize code here to fit your needs
strFTPServerName = "proxy.prv"
strLocalFolderName = ""
strLoginID = ""
strPassword = ""
strFTPServerFolder = ""
strFileToGet = ""




strLocalFolderName = GetLocalFolder()
strLoginID = InputBox("Enter FTP Username: ", "Enter FTP Username", "Authentication_Method@Destination_FTP_Host")
strPassword = InputBox("Enter FTP Password: ", "Enter FTP Password", "Authentication_Method@Destination_FTP_Host")
strFTPServerFolder = InputBox("Enter FTP folder that you want to access: ", "Enter FTP Folder", "/")
strFileToGet = InputBox("Enter the filename located on the FTP that you want to retrieve: ", "Enter FTP file", "*.*")

if strLoginID = "" then 
    WScript.Echo "You must specify a Login ID for this script to work"
    WScript.Quit()
end if

if strPassword = "" then 
    WScript.Echo "You must specify a Password for this script to work"
    WScript.Quit()
end if

if strFTPServerFolder = "" then 
    WScript.Echo "You must specify a FTP Folder to access for this script to work"
    WScript.Quit()
end if

if strFileToGet = "" then 
    WScript.Echo "You must specify a Filename to download for this script to work"
    WScript.Quit()
end if



Call WriteFTPScript()



Set objShell = WScript.CreateObject( "WScript.Shell" )
returnCode = objShell.Run( "cmd.exe /c ftp -s:" & chr(34) & strFTPScriptFileName & chr(34), 1, true)

if (returnCode = 0) then
   Wscript.echo("Your file has been downloaded.")
else
   Wscript.echo("An error has occured while attempting to download your file.")
End if

objShell.Run (strLocalFolderName)
Set objShell = Nothing



' **************************************************************************
' Creates the FTP script text file
Function WriteFTPScript()

    Dim objFSO, objMyFile
    strFTPScriptFileName = strLocalFolderName & "\FTPScript.txt"        'File to be created to hold ftp script data

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    If (objFSO.FileExists(strFTPScriptFileName)) Then
            objFSO.DeleteFile (strFTPScriptFileName)
    End If

    Set objMyFile = objFSO.CreateTextFile(strFTPScriptFileName, True)

    objMyFile.WriteLine ("open " & strFTPServerName)
    objMyFile.WriteLine (strLoginID)
    objMyFile.WriteLine (strPassword)
    objMyFile.WriteLine ("cd " & strFTPServerFolder)
    objMyFile.WriteLine ("lcd " & strLocalFolderName)
    objMyFile.WriteLine ("get " & strFileToGet)
    objMyFile.WriteLine ("bye")


    objMyFile.Close
    Set objFSO = Nothing
    Set objMyFile = Nothing

End Function



' **************************************************************************
' Dialog box to select folder to download to
Function GetLocalFolder()

    Const BIF_returnonlyfsdirs = &H0001
    Const BIF_editbox = &H0010
    Dim wsh, objDlg, objF

    Set objDlg = WScript.CreateObject("Shell.Application")
    Set objF = objDlg.BrowseForFolder (&H0, "Select the destination folder to download FTP files to:", BIF_editbox + BIF_returnonlyfsdirs)

    If IsValue(objF) Then 
        GetLocalFolder = objF.ParentFolder.ParseName(objF.Title).Path
    Else
        WScript.Echo "You MUST specify a folder to download files to.  Application will now exit."
        WScript.Quit
    End If

end function


' **************************************************************************
' Verifies if the the object contains a value
Function IsValue(obj)
    Dim tmp
    On Error Resume Next
    tmp = " " & obj
    If Err <> 0 Then
        IsValue = False
    Else
        IsValue = True
    End If
    On Error GoTo 0
End Function



' **************************************************************************
' Verifies if the the object is a folder
Function IsFolder(obj)
    Dim objFSO
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    if objFSO.IsFolder(obj) then 
        IsFolder = True 
    end if



End Function

答案 1 :(得分:0)

是的,有。可以使用vbScript操作NetHood文件夹。有关更多信息,请参阅this forum thread。以下适用于XP Pro:

Option Explicit
On Error Goto 0

'ShellSpecialFolderConstants
Const ssfNETHOOD = 19 '(&H13) Special Folder NETHOOD

Dim objWSHShell, objShell, objFolder, objFolderItem, strNetHood
Dim strShortcutName, strShortcutPath, objShortcut

Set objWSHShell = CreateObject("Wscript.Shell")
Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(ssfNETHOOD)
Set objFolderItem = objFolder.Self
strNetHood = objFolderItem.Path

strShortcutName = "FTP to localhost"
strShortcutPath = "ftp://username@localhost/"

Set objShortcut = objWSHShell.CreateShortcut(strNetHood & "\" & strShortcutName & ".lnk")
objShortcut.TargetPath = strShortcutPath
objShortcut.Save