eintyp
Goto Top

Mit .vbs-Scripten Textdateien erstellen

Ich habe vor ein .vbs-Script zu erstellen, welches eine Textdatei mit dem Inhalt

Das hier ist ein Test!
Ende

erstellt und dann im Ordner c:\users\Beispiel unter dem Namen Testdatei.txt speichert. Das mit dem Sendkeys habe ich schon verstanden, aber ich möchte mal wissen wie man solche Dateien speichert.

Vielen Dank schonmal voraus!
mfg -EinTyp-

Content-ID: 147551

Url: https://administrator.de/contentid/147551

Ausgedruckt am: 05.11.2024 um 16:11 Uhr

TsukiSan
TsukiSan 23.07.2010 um 16:19:23 Uhr
Goto Top
Es ist Freitag, oder?
hier dein Beispiel:
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set MyFile = FSO.CreateTextFile("c:\users\Beispiel\Testdatei.txt ", TRUE)  
MyFile.Close
	Set MyFile = FSO.OpenTextFile("c:\users\Beispiel\Testdatei.txt", 8)  
	MyFile.WriteLine ("Das hier ist ein Test!")  
        MyFile.WriteLine ("Ende")  
MyFile.Close
regedit19
regedit19 23.07.2010 um 22:12:05 Uhr
Goto Top
@ no comment .-.
TsukiSan
TsukiSan 24.07.2010 um 09:29:55 Uhr
Goto Top
@regedit19

erst einmal:
setze deinen Schnipsel in die "Code-Tags"
Dann wird's auf jeden Fall verständlicher!

Zweitens:
du benötigst genau auch 7 Zeilen in deinem batch die sich reduzieren lassen auf maximal 2 Zeilen!

Drittens:
Der Thread-Ersteller fragt nach einem *.vbs-Script
Es wurde hier nicht nach deiner persönlichen Meinung gefragt, ob du das besser findest oder nicht

Ein schönes WE

Tsuki
EinTyp
EinTyp 24.07.2010 um 10:04:51 Uhr
Goto Top
Danke TsukiSan!

würde es auch gehen, dass ich mit einem *.vbs-Script ein anderes *.vbs-Script erstellen will. Mit dem Inhalt:

dim a
set a =CreateObject("WScript.Shell")
a.run "cmd.exe"

also müsste das Script logischerweise so aussehen:

Set FSO = CreateObject("Scripting.FileSystemObject")  
Set MyFile = FSO.CreateTextFile("c:\users\alias\Testdatei.vbs ", TRUE)  
MyFile.Close
	      Set MyFile = FSO.OpenTextFile("c:\users\alias\Testdatei.vbs", 8)  
	      MyFile.WriteLine ("dim a")  
              MyFile.WriteLine ("set a = CreateObject("Wscript.Shell")")  
              MyFile.WriteLine ("a.run "cmd"")  
MyFile.Close

Natürlich würde dieses Script niemals funktionieren. Wie würde diese Zeile nun richtig lauten???

MyFile.WriteLine ("set a = CreateObject("Wscript.Shell")")

Wäre dankbar für jede Antwort

mfg -EinTyp-
TsukiSan
TsukiSan 24.07.2010 um 10:14:36 Uhr
Goto Top
Hallo EinTyp,

prinzipiell hast du mit deinem Script Recht.
Allerdings werden dir die Gänsefüßchen (") Ärger machen.
Die kannst du aber "umschreiben"
Beispiel:
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set MyFile = FSO.CreateTextFile("c:\users\alias\Testdatei.vbs ", TRUE)  
MyFile.Close
	      Set MyFile = FSO.OpenTextFile("c:\users\alias\Testdatei.vbs", 8)  
	      MyFile.WriteLine ("dim a")  
              MyFile.WriteLine ("set a = CreateObject(" & Chr(34) & "Wscript.Shell" & Chr(34) & ")")  
              MyFile.WriteLine ("a.run "  & Chr(34) &  "cmd" & Chr(34)  )  
MyFile.Close

Ps.: muss das mal testen!
So kannst du dir auch vbs-Dateien "erstellen" und sicher auch andere Dateien (Textdateien) anlegen!

Gruss
Tsuki
TsukiSan
TsukiSan 24.07.2010 um 10:42:41 Uhr
Goto Top
[OT]
Vielleicht noch eine kurze Erklärung, bezüglich des "Chr(34)"
Das "tut" nix anderes als aus dem ASCII-Code den Character umzuwandeln.
In deinem Fall entspricht die Nummer 34 dann den Gänsefüßchen, also "Chr(34)".
Zum Testen kann man sich mal eine Liste anlegen, welcher ASCII-Code welchem Character entspricht:
Mit VBS mal folgende Datei erstellen. Ich nenne sie einfach mal "ASCII.txt"
MeineASCDatei = "C:\ASCII.txt"  

Set FSO = CreateObject("Scripting.FileSystemObject")  
SET MyASCFile = FSO.CreateTextFile(MeineASCDatei, True)
MyASCFile.Close

SET MyASCFile = FSO.OpenTextFile(MeineASCDatei, 8)

For i = 1 to 254
	MyASCFile.WriteLine (i & ": " & CHR(i))   
next

MyASCFile.Close

Set FSO = nothing
Set MyASCFile = nothing
Unter dem Pfad "C:\" wird dann eine Datei ( "ASCII.txt" ) erstellt, die dir die ganzen Zeichen aufzeigt.

Ich hoffe, das hilft etwas.

[/OT]

Gruss
Tsuki
bastla
bastla 24.07.2010 um 16:16:19 Uhr
Goto Top
Hallo EinTyp und Tsuki!

Nur als (nicht zu ernst zu nehmende face-wink) Anmerkung zum Umfang / zur Zeilenanzahl des VBScripts: Unter Beibehaltung der Funktionalität ließe sich das etwas reduzieren:
CreateObject("Scripting.FileSystemObject").CreateTextFile("c:\users\alias\Testdatei.vbs").Write "CreateObject(""WScript.Shell"").run ""cmd.exe"""
Grüße
bastla
Biber
Biber 24.07.2010 um 16:56:55 Uhr
Goto Top
[OT] @bastla

Ja, ja, diese WideScreen-Bildschirme werden immer preiswerter und spenden ja auch wenig Schatten auf dem Balkon...
Nutzt du deinen Monitor auch im Winter wieder als Tischtennisplatte im Hobbykeller?

Na ja, wer es sich leisten kann, wenn alles etwas in die Breite geht...face-wink

Grüße
Biber
[/OT]
EinTyp
EinTyp 24.07.2010 um 20:38:44 Uhr
Goto Top
Vielen Dank für die ganzen Antworten!!

Ihr habt mir richtig weitergeholfen!
Wenn ihr mir noch beantworten könntet, ob ein laufendes VBScript auch eine eigene Variable hat??? (So wie eine laufende Batch-Datei eine hat)

Danke im Vorraus
-EinTyp-

PS sry wenn ich vielleicht vom Thema abweiche
bastla
bastla 25.07.2010 um 00:57:11 Uhr
Goto Top
Hallo EinTyp!

Nur geraten: Meinst Du "WScript.ScriptName" bzw "WScript.ScriptFullName"?

[OT]
@Biber
Nutzt du deinen Monitor auch im Winter wieder als Tischtennisplatte im Hobbykeller?
Tischtennis? Was Du auch immer so übertreibst - natürlich wird der nur für Tipp-Kick verwendet (da braucht's auch keine so heftigen Bewegungen) ... face-wink
[/OT]

Grüße
bastla
Drachenlord
Drachenlord 19.02.2017 um 10:38:06 Uhr
Goto Top
Wie sieht es aus wenn ich das schreiben will?

Dim Beispiel
Set Beispiel = CreateObject("WScript.Shell")
Beispiel.Popup "Hallo Welt","3","Test"
132272
132272 19.02.2017 um 11:07:45 Uhr
Goto Top
Zitat von @Drachenlord:

Wie sieht es aus wenn ich das schreiben will?

Dim Beispiel
Set Beispiel = CreateObject("WScript.Shell")
Beispiel.Popup "Hallo Welt","3","Test"
???

그 일이 끝날 때까지 기다릴 수 있을까요?
희미한 예배
예제 설정