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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170651
Url: https://administrator.de/contentid/170651
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
28 Kommentare
Neuester Kommentar
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
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
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
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é
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.: "
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 ...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
@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
Hallo Skyemugen!
Einfacher wäre vielleicht folgendes Ergebnis zu erreichen:
nämlich etwa so:
Sinn hat das aber nicht wirklich ...
Grüße
bastla
Einfacher wäre vielleicht folgendes Ergebnis zu erreichen:
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
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é
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
greetz André
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
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
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 über
Zu 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
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 ...
Hallo charmeur!
Darf ich Dich einladen, so wie alle anderen hier, zu benutzen (kann auch problemlos im Nachhinein hinzugefügt werden)?
Was Du vermutlich haben möchtest, wäre
BTW: Wenn Du schon Variablen (mit "
Grüße
bastla
Darf ich Dich einladen, so wie alle anderen hier, 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
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