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-Key: 147551

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

Printed on: April 18, 2024 at 08:04 o'clock

Member: TsukiSan
TsukiSan Jul 23, 2010 at 14:19:23 (UTC)
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
Member: regedit19
regedit19 Jul 23, 2010 at 20:12:05 (UTC)
Goto Top
@ no comment .-.
Member: TsukiSan
TsukiSan Jul 24, 2010 at 07:29:55 (UTC)
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
Member: EinTyp
EinTyp Jul 24, 2010 at 08:04:51 (UTC)
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-
Member: TsukiSan
TsukiSan Jul 24, 2010 at 08:14:36 (UTC)
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
Member: TsukiSan
TsukiSan Jul 24, 2010 at 08:42:41 (UTC)
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
Member: bastla
bastla Jul 24, 2010 at 14:16:19 (UTC)
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
Member: Biber
Biber Jul 24, 2010 at 14:56:55 (UTC)
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]
Member: EinTyp
EinTyp Jul 24, 2010 at 18:38:44 (UTC)
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
Member: bastla
bastla Jul 24, 2010 at 22:57:11 (UTC)
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
Member: Drachenlord
Drachenlord Feb 19, 2017 at 09:38:06 (UTC)
Goto Top
Wie sieht es aus wenn ich das schreiben will?

Dim Beispiel
Set Beispiel = CreateObject("WScript.Shell")
Beispiel.Popup "Hallo Welt","3","Test"
Mitglied: 132272
132272 Feb 19, 2017 at 10:07:45 (UTC)
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"
???

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