MSGBox und .txt
Hallo ihr
ich hätte gerne den inhalt einer txt Datei in eine .bat und zwar sollte der Inhalt der txt datei über eine MSGBox widergegeben werden
mein ansatz würde so lauten
@echo off & setlocal
echo "msgbox type "D:\Eigene Dateien Daten\Desktop\info.txt"|more" ,vbExclamation , "Test"> msg.vbs
msg.vbs
erase msg.vbs
endlocal & exit
aber leider geht das nicht könnte mir jemand bitte helfen
mein ansatz würde so lauten
@echo off & setlocal
echo "msgbox type "D:\Eigene Dateien Daten\Desktop\info.txt"|more" ,vbExclamation , "Test"> msg.vbs
msg.vbs
erase msg.vbs
endlocal & exit
aber leider geht das nicht könnte mir jemand bitte helfen
28 Antworten
- LÖSUNG Berrnd schreibt am 29.07.2011 um 21:51:27 Uhr
- LÖSUNG charmeur schreibt am 29.07.2011 um 22:10:54 Uhr
- LÖSUNG Berrnd schreibt am 29.07.2011 um 22:21:15 Uhr
- LÖSUNG charmeur schreibt am 30.07.2011 um 09:33:07 Uhr
- LÖSUNG Berrnd schreibt am 30.07.2011 um 15:06:24 Uhr
- LÖSUNG charmeur schreibt am 30.07.2011 um 16:16:37 Uhr
- LÖSUNG Berrnd schreibt am 30.07.2011 um 16:29:35 Uhr
- LÖSUNG charmeur schreibt am 30.07.2011 um 16:16:37 Uhr
- LÖSUNG Berrnd schreibt am 30.07.2011 um 15:06:24 Uhr
- LÖSUNG charmeur schreibt am 30.07.2011 um 09:33:07 Uhr
- LÖSUNG Berrnd schreibt am 29.07.2011 um 22:21:15 Uhr
- LÖSUNG charmeur schreibt am 29.07.2011 um 22:10:54 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 21:52:07 Uhr
- LÖSUNG charmeur schreibt am 29.07.2011 um 22:03:00 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 22:09:15 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:30:31 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 22:33:47 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:35:37 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 22:49:55 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:51:35 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 23:14:59 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:51:35 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 22:49:55 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:35:37 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 22:33:47 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:30:31 Uhr
- LÖSUNG Skyemugen schreibt am 29.07.2011 um 22:09:15 Uhr
- LÖSUNG charmeur schreibt am 29.07.2011 um 22:03:00 Uhr
- LÖSUNG bastla schreibt am 29.07.2011 um 22:15:55 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 15:40:14 Uhr
- LÖSUNG Berrnd schreibt am 31.07.2011 um 15:53:30 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 16:28:42 Uhr
- LÖSUNG Berrnd schreibt am 31.07.2011 um 16:50:37 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 16:28:42 Uhr
- LÖSUNG bastla schreibt am 31.07.2011 um 18:33:18 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 22:12:05 Uhr
- LÖSUNG bastla schreibt am 31.07.2011 um 22:21:57 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 22:41:46 Uhr
- LÖSUNG bastla schreibt am 31.07.2011 um 22:44:10 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 22:53:57 Uhr
- LÖSUNG bastla schreibt am 31.07.2011 um 22:57:22 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 22:53:57 Uhr
- LÖSUNG bastla schreibt am 31.07.2011 um 22:44:10 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 22:41:46 Uhr
- LÖSUNG bastla schreibt am 31.07.2011 um 22:21:57 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 22:12:05 Uhr
- LÖSUNG Berrnd schreibt am 31.07.2011 um 15:53:30 Uhr
- LÖSUNG charmeur schreibt am 31.07.2011 um 15:40:14 Uhr
LÖSUNG 29.07.2011 um 21:51 Uhr
Hi,
warum nicht alles mittels VBScript? Beispiel:Gruß - Bernd
warum nicht alles mittels VBScript? Beispiel:
MsgBox ReadTxtFileIntoString("D:\Eigene Dateien Daten\Desktop\info.txt")
Public Function ReadTxtFileIntoString(ByVal TxtFilePath) 'As String
Dim FSO 'As Scripting.FileSystemObject
Dim TxtFile 'As File
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TxtFile = FSO.OpenTextFile(TxtFilePath, 1)
ReadTxtFileIntoString = TxtFile.ReadAll
TxtFile.Close
End Function
LÖSUNG 29.07.2011 um 21:52 Uhr
LÖSUNG 29.07.2011 um 22:03 Uhr
LÖSUNG 29.07.2011 um 22:09 Uhr
Aloha,
nö, ich habe dein EP falsch interpretiert und mich schon gewundert Freitagabend eben, da überliest man gerne mal den ersten Satz im EP *lach*
edit: Da bastla bereits die mehrzeilige Sache angesprochen hat, hier einfach noch einmal zur möglichen Info für eine einzeilige Textdatei
Das Problem hierbei ist: Das Verwenden von type und more hätte keinen Effekt (darum auch direkte Verwendung durch usebackq), da man nicht einfach so mit dieser Methode Mehrzeiler afaik in die MsgBox übernehmen kann (ohne vbcrlf), korrigiert mich, wenn ich falsch liege.
greetz André
nö, ich habe dein EP falsch interpretiert und mich schon gewundert Freitagabend eben, da überliest man gerne mal den ersten Satz im EP *lach*
edit: Da bastla bereits die mehrzeilige Sache angesprochen hat, hier einfach noch einmal zur möglichen Info für eine einzeilige Textdatei
@echo off
for /f "usebackq delims=" %%s in ("D:\Eigene Dateien Daten\Desktop\info.txt") do (
>msg.vbs echo MsgBox "%%s",vbexclamation,"test"
)
msg.vbs
del msg.vbs
goto :eof
greetz André
LÖSUNG 29.07.2011 um 22:10 Uhr
LÖSUNG 29.07.2011 um 22:15 Uhr
Hallo @All!
Ausgehend von der Annahme, dass die Textdatei mehr als eine Zeile enthält (enthalten kann) und außerdem auch noch Parameter für die "MsgBox" benötigt werden, würde ich ebenfalls für eine VBS-Lösung plädieren - was aber nicht heißt, dass diese nicht per Batch erstellt werden kann:
Grüße
bastla
P.S.: "endlocal" wird am Ende eines Batches automatisch ausgeführt, und ein "exit" ohne "/b" ist in den meisten Fällen sinnfrei ...
Ausgehend von der Annahme, dass die Textdatei mehr als eine Zeile enthält (enthalten kann) und außerdem auch noch Parameter für die "MsgBox" benötigt werden, würde ich ebenfalls für eine VBS-Lösung plädieren - was aber nicht heißt, dass diese nicht per Batch erstellt werden kann:
@echo off & setlocal
set "Info=D:\Eigene Dateien Daten\Desktop\info.txt"
set M=%temp%\MsgBox.vbs
>%M% echo MsgBox CreateObject("Scripting.FileSystemObject").OpenTextFile("%Info%").ReadAll, vbExclamation, "Test"
%M%
del %M%
bastla
P.S.: "endlocal" wird am Ende eines Batches automatisch ausgeführt, und ein "exit" ohne "/b" ist in den meisten Fällen sinnfrei ...
LÖSUNG 29.07.2011 um 22:21 Uhr
Zitat von @charmeur:
nur intersse halber würde das ganze auch über eine txt Datei funktionieren die auf einem Web server liegt
Hi,nur intersse halber würde das ganze auch über eine txt Datei funktionieren die auf einem Web server liegt
aber klar doch ;). Beispiel:
MsgBox DownloadString("http://www.google.com/robots.txt")
Public Function DownloadString(ByVal URL) 'As String
Dim WebReq 'As MsXml2.XmlHttp
Dim FSO 'As Scripting.FileSystemObject
Set WebReq = CreateObject("MsXml2.XmlHttp.3.0")
Set FSO = CreateObject("Scripting.FileSystemObject")
WebReq.Open "get", URL, False
WebReq.Send
DownloadString = WebReq.ResponseText
End Function
LÖSUNG 29.07.2011 um 22:30 Uhr
@Skyemugen
Da das Endergebnis etwa so aussehen sollte:
ist das per Batch only etwas mühsam - und wenn ja ohnehin ein VB-Script verwendet werden soll ...
Grüße
bastla
Da das Endergebnis etwa so aussehen sollte:
MsgBox "Zeile1" & vbCrLf & "Zeile2" & vbCrLf & "Zeile3", vbExclamation, "Test"
Grüße
bastla
LÖSUNG 29.07.2011 um 22:33 Uhr
LÖSUNG 29.07.2011 um 22:35 Uhr
Hallo Skyemugen!
Einfacher
wäre vielleicht folgendes Ergebnis zu erreichen:
nämlich etwa so:
Sinn hat das aber nicht wirklich ... 
Grüße
bastla
Einfacher
MsgBox _
"Zeile1" _
& vbCrLf _
& "Zeile2" _
& vbCrLf _
& "Zeile3" _
, vbExclamation, "Test"
@echo off & setlocal
set "Info=D:\Eigene Dateien Daten\Desktop\info.txt"
set M=%temp%\MsgBox.vbs
>%M% echo MsgBox _
set /p Zeile1=<"%Info%"
>>%M% echo "%Zeile1%" _
for /f "delims=" %%i in ('more +1 "%Info%"') do (
echo ^& vbCrLf _
echo ^& "%%i" _
)>>%M%
>>%M% echo , vbExlamation, "Test"
%M%
del %M%
Grüße
bastla
LÖSUNG 29.07.2011 um 22:49 Uhr
Aloha bastla,
och ... jetzt gibst du mir schon 'nen guten Hinweis, wie es einfach umzusetzen wäre, dann drückt man kurz darauf F5 und braucht auch nicht mehr posten, weil der Herr auch gleich die Arbeit abgenommen hat *grml*
Jetzt hatte ich mich extra doch noch einmal rangesetzt ^_^ auch wenn ich es etwas einfacher lösen wollte, was erst in einem Kompilierungsfehler endete, hahaha
greetz André
och ... jetzt gibst du mir schon 'nen guten Hinweis, wie es einfach umzusetzen wäre, dann drückt man kurz darauf F5 und braucht auch nicht mehr posten, weil der Herr auch gleich die Arbeit abgenommen hat *grml*
Jetzt hatte ich mich extra doch noch einmal rangesetzt ^_^ auch wenn ich es etwas einfacher lösen wollte, was erst in einem Kompilierungsfehler endete, hahaha
greetz André
LÖSUNG 29.07.2011 um 22:51 Uhr
LÖSUNG 29.07.2011 um 23:14 Uhr
Aloha bastla,
na,wir wollen die ja schließlich nicht unterschlagen
greetz André
na,wir wollen die ja schließlich nicht unterschlagen
@echo off & setlocal
set "Info=D:\Eigene Dateien Daten\Desktop\info.txt"
set "M=%temp%\MsgBox.vbs"
>%M% echo MsgBox _
set /p Zeile1=<"%Info%"
>>%M% echo "%Zeile1%" _
for /f "delims=: tokens=1,2*" %%h in ('more +1 "%Info%" ^|findstr /n "^"') do (
echo ^& vbCrLf _
if "%%i" equ "" (echo ^& " " _) else (echo ^& "%%i" _)
)>>%M%
>>%M% echo , vbExlamation, "Test"
%M%
del %M%
goto :eof
LÖSUNG 30.07.2011 um 09:33 Uhr
Zitat von @Berrnd:
> Zitat von @charmeur:
> ----
> nur intersse halber würde das ganze auch über eine txt Datei funktionieren die auf einem Web server liegt
Hi,
aber klar doch ;). Beispiel:Viele Grüße - Bernd
> Zitat von @charmeur:
> ----
> nur intersse halber würde das ganze auch über eine txt Datei funktionieren die auf einem Web server liegt
Hi,
aber klar doch ;). Beispiel:
MsgBox DownloadString("http://www.google.com/robots.txt")
>
> Public Function DownloadString(ByVal URL) 'As String
> Dim WebReq 'As MsXml2.XmlHttp
> Dim FSO 'As Scripting.FileSystemObject
>
> Set WebReq = CreateObject("MsXml2.XmlHttp.3.0")
> Set FSO = CreateObject("Scripting.FileSystemObject")
>
> WebReq.Open "get", URL, False
> WebReq.Send
>
> DownloadString = WebReq.ResponseText
> End Function
hallo danke für die Antwort, da ja die meisten ein VBScript machen würden würde ich in dem fall das so machen wollen.
nur mein problem ist das ich mit dem nicht wirklich auskenne, das script passt ja genau so wie ich das haben möchte
nur noch eine letze bitte ich würde in diesem script noch gerne ein Programm starten und ausserdem würde ich noch wollen das falls die txt leer ist das keine MSGBox aufgerufen wird wäre das auch machbar?
LÖSUNG 30.07.2011 um 15:06 Uhr
Hi,
...aber selbstverständlich ist auch das machbar. ;) Beispiel Programm starten:
Beispiel keine MsgBox wenn Textdatei leer:Viele Grüße - Bernd
...aber selbstverständlich ist auch das machbar. ;) Beispiel Programm starten:
StartApp "C:\windows\system32\notepad.exe"
Public Sub StartApp(ByVal Path)
Dim Shell 'As WScript.Shell
Set Shell = CreateObject("WScript.Shell")
Shell.Run Path
End Sub
Dim txt 'As String
txt = ReadTxtFileIntoString("C:\Windows\system.ini")
If Not txt = "" Then
MsgBox txt
End If
LÖSUNG 30.07.2011 um 16:16 Uhr
Super es geht natürlich aber leide rbin ich nicht in der lage das script zusammen zu fassen
also die txt datei soll auf dem web server überprüft werden ob sie leer ist oder nicht, wenn nicht dann sollte das MSGBox mit dem Inhalt aus der txt datei auf dem Server geöffnet werden übrigens wäre es toll das die datei jedes mal erneut abgefagt wird ob die txt datei leer ist oder nicht
also die txt datei soll auf dem web server überprüft werden ob sie leer ist oder nicht, wenn nicht dann sollte das MSGBox mit dem Inhalt aus der txt datei auf dem Server geöffnet werden übrigens wäre es toll das die datei jedes mal erneut abgefagt wird ob die txt datei leer ist oder nicht
LÖSUNG 30.07.2011 um 16:29 Uhr
Hi,
...bitteschön:
Der Richtigkeit halber: Die Textdatei wird nicht vom Server überprüft sondern natürlich heruntergeladen, egal ob leer oder nicht, und dann geprüft. Dies geschieht selbstverständlich bei jedem Aufruf des Scripts erneut.
Viele Grüße - Bernd
...bitteschön:
Dim txt 'As String
txt = DownloadString("http://www.google.com/robots.txt")
If Not txt = "" Then
MsgBox txt
End If
Public Function DownloadString(ByVal URL) 'As String
Dim WebReq 'As MsXml2.XmlHttp
Dim FSO 'As Scripting.FileSystemObject
Set WebReq = CreateObject("MsXml2.XmlHttp.3.0")
Set FSO = CreateObject("Scripting.FileSystemObject")
WebReq.Open "get", URL, False
WebReq.Send
DownloadString = WebReq.ResponseText
End Function
Viele Grüße - Bernd
LÖSUNG 31.07.2011 um 15:40 Uhr
ok nun habe ich das so weit hier mal mein ansatz
frage wie schaffe ich es nun, das noch eine txt datei aufgerufen wird , in dem dann noch ein script steht das ausgeführt wird?
und ncih eine frage kann ich aus einer excel datei eine bestimmte zeile in eine txt datei expotieren?
Dim txt 'As String
txt = DownloadString("http://dyndns.or/medid/web/Script/info.txt")
If Not txt = "" Then
MsgBox txt
End If
Public Function DownloadString(ByVal URL) 'As String
Dim WebReq 'As MsXml2.XmlHttp
Dim FSO 'As Scripting.FileSystemObject
Set WebReq = CreateObject("MsXml2.XmlHttp.3.0")
Set FSO = CreateObject("Scripting.FileSystemObject")
WebReq.Open "get", URL, False
WebReq.Send
DownloadString = WebReq.ResponseText
End Function
Dim txt1'As String
txt1 = DownloadString("http://dyndns.or/medid/web/Script/Prme.txt")
If Not txt1 = "" Then
StartApp txt1
End If
Public Sub StartApp(ByVal Path)
Dim Shell 'As WScript.Shell
Set Shell = CreateObject("WScript.Shell")
Shell.Run Path
End Sub
Dim txt2'As String
txt2 = DownloadString("http://dyndns.or/medid/web/Script/er.txt")
If txt = "" Then
If txt1 = "" Then
MsgBox txt2
End If
End If
und ncih eine frage kann ich aus einer excel datei eine bestimmte zeile in eine txt datei expotieren?
LÖSUNG 31.07.2011 um 15:53 Uhr
Hi,
zu deiner ersten Frage: Was meinst du damit genau? Steht in einer txt-Datei ein weiteres VBScript oder eine Batch? Z. B. im Fall von Batch: Bennene die .txt-Datei einfach in eine .bat-Datei um und starte diese dann aus dem ersten VBScript überZu deiner zweiten Frage: Da habe ich leider keine Ahnung, ob/wie das mit VBScript geht...
Viele Grüße - Bernd
zu deiner ersten Frage: Was meinst du damit genau? Steht in einer txt-Datei ein weiteres VBScript oder eine Batch? Z. B. im Fall von Batch: Bennene die .txt-Datei einfach in eine .bat-Datei um und starte diese dann aus dem ersten VBScript über
StartApp "C:\deinebatch.bat"
Viele Grüße - Bernd
LÖSUNG 31.07.2011 um 16:28 Uhr
LÖSUNG 31.07.2011 um 16:50 Uhr
LÖSUNG 31.07.2011 um 18:33 Uhr
Hallo charmeur!
Wenn es tatsächlich eine ganze Zeile sein soll, Zeile 5 in eine passende Schleife packen und in der Variablen "txt" die Werte (passend - wie, weißt ja bisher nur Du) zusammenfassen - danach in die Textdatei schreiben ...
Grüße
bastla
P.S.: Vom eigentlichen Thema des Threads sind wir aber jetzt schon einigermaßen weit entfernt ...
und ncih eine frage kann ich aus einer excel datei eine bestimmte zeile in eine txt datei expotieren?
Für das Lesen einer Zelle, im Beispiel A2 der ersten Tabelle, (ungetestet) etwa so:Set oXL = WScript.CreateObject("EXCEL.application")
With oXL
.Visible = False
.Workbooks.Open "D:\Eigene Dateien Daten\Desktop\Excel-Datei.xlsx"
txt = .Worksheets(1).Cells(2, "A").Value
.ActiveWorkbook.Close False
.Application.Quit
End With
Grüße
bastla
P.S.: Vom eigentlichen Thema des Threads sind wir aber jetzt schon einigermaßen weit entfernt ...
LÖSUNG 31.07.2011 um 22:12 Uhr
hallo erst noch einmal danke für die hilfe ich hätte da noch eine kleine frage danach werde ich das ganze hier dann auch zu ende bringen und zwar
habe ich folgendes
ich würde gerne haben wollen das die letzte beschriebene zelle angezeigt wird aber leider geht das wie so oft nicht
txt = .Worksheets(1).Range("A2", Selection.End(xlToRight)).Select
habe ich folgendes
Dim txt 'As String
Set oXL = WScript.CreateObject("EXCEL.application")
With oXL
.Visible = False
.Workbooks.Open "D:\Eigene Dateien Daten\Desktop\1.xlsx"
txt = .Worksheets(1).Range("A2", Selection.End(xlToRight)).Select
.ActiveWorkbook.Close False
.Application.Quit
End With
MsgBox txt
ich würde gerne haben wollen das die letzte beschriebene zelle angezeigt wird aber leider geht das wie so oft nicht
txt = .Worksheets(1).Range("A2", Selection.End(xlToRight)).Select
LÖSUNG 31.07.2011 um 22:21 Uhr
Hallo charmeur!
Darf ich Dich einladen, so wie alle anderen hier, Code-Formatierung zu benutzen (kann auch problemlos im Nachhinein hinzugefügt werden)?
Was Du vermutlich haben möchtest, wäre
BTW: Wenn Du schon Variablen (mit "Dim") deklarierst, dann aber konsequent für alle (also auch für "oXL") - und dazu wäre auch noch ein "Option Explicit" vorweg sinnvoll ...
Grüße
bastla
Darf ich Dich einladen, so wie alle anderen hier, Code-Formatierung zu benutzen (kann auch problemlos im Nachhinein hinzugefügt werden)?
Was Du vermutlich haben möchtest, wäre
txt = .Worksheets(1).Range("A2").End(xlToRight).Value
Grüße
bastla
LÖSUNG 31.07.2011 um 22:41 Uhr
LÖSUNG 31.07.2011 um 22:44 Uhr
LÖSUNG 31.07.2011 um 22:53 Uhr
ich habe das hier nn im script
und der fehler lautet
800A03EC
Dim txt 'As String
Set oXL = WScript.CreateObject("EXCEL.application")
With oXL
.Visible = False
.Workbooks.Open "D:\Eigene Dateien Daten\Desktop\1.xlsx"
txt = .Worksheets(1).Range("A2").End(xlToRight).Value
.ActiveWorkbook.Close False
.Application.Quit
End With
MsgBox txt
800A03EC
LÖSUNG 31.07.2011 um 22:57 Uhr