2012-03-25 15 views
0

ich ein Drehbuch schreibt, die alles auf dieVBscript und CMD Schreiben in eine Textdatei

hier Datei ausführt und schreibe, ist beispielsweise

ich den vollständigen Befehl in den Variablen ‚Command‘ gespeichert,

Command = "ftp ftp.xyz.com 21 " & vbCRLF 

und anschließend in Eingabeaufforderung ausführt,

shell.Run "%comspec% /c FTP " & Command & " > " & E:/abc.txt, 0, TRUE 

aber wenn diese pr ogram execute es wird nichts in die Textdatei geschrieben, da dies ein unvollständiger Befehl ist. Dieser Befehl fordert den Benutzer zur Eingabe des Benutzernamens und des Passworts von FTP auf:

Wie kann ich dies tun, dass mein Programm automatisch den Benutzernamen eingibt und Passwort bei der Eingabeaufforderung und dann alles in die Datei schreiben?

Antwort

1

Sie müssen FTP mit einem unbeaufsichtigten Skript ausführen. (Versuchen Sie ftp /? und sehen Sie die Option -s.)

Es sieht wie folgt aus:

Const HOSTNAME = "ftp.myserver.com" 
Const USERNAME = "Login" 
Const PASSWORD = "password" 

Set WshShell = CreateObject("WScript.Shell") 
Set objFso = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFso.CreateTextFile("session.txt") 

With objFile 
    .WriteLine "USER username" 
    .WriteLine "password" 
    .WriteLine "cd /public_html/" ' continue adding commands like this 
    .Close 
End With 

strOutput = "C:\somefilepath\output.txt" 
strCommand = "%systemroot%\System32\ftp.exe -s:session.txt > " & strOutput 
strCommand = WshShell.ExpandEnvironmentStrings(strCommand) 
WshShell.Run strCommand, 0, vbTrue 

objFso.DeleteFile "session.txt", vbTrue 

Mehr erfahren Sie in meinem Artikel Using FTP in WSH auf ASP Freie lesen. Ich beantwortete auch eine verwandte Frage here.

+1

Ich vermute, es gibt einen Tippfehler in der Zeile 'strCommand = WshShell.ExpandEnvironmentStrings (strFTP)'. strFtp ist nicht definiert. –

+1

Danke. Es ist korrigiert. – Nilpo

Verwandte Themen