Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Im script ein befehl aus einer txt auf dem server holen

Frage Entwicklung Batch & Shell

Mitglied: charmeur

charmeur (Level 1) - Jetzt verbinden

02.08.2011 um 23:50 Uhr, 2721 Aufrufe, 10 Kommentare

hallo ihr ich bins mal wieder gg nun mal wieder etwas anderes hier habe ich noch ein code gebastelt (dank euch gg)
nun hätte ich da eine frage
es wird für verschiedenen optionen eine txt datei auf dem server angelegt, dies wäre nicht nötig wenn ich in der lage wäre
wenn ich wüsste wie man aus einer txt datei eine bestimmte zeile auslesen könnte, hätte da jemand eine idee ?
01.
Option Explicit 
02.
Dim oXL 
03.
Dim txt 'As String 
04.
Dim txt1 'As String 
05.
Dim txt2 'As String 
06.
Dim txt3 'As String 
07.
Dim txt4 'As String 
08.
Dim txt5 'As String 
09.
 
10.
Dim WshShell 
11.
Dim iReturn 
12.
Dim sMessage, sTitel, sTitel1 
13.
 
14.
txt = DownloadString("http://tspoint.......info.txt")  
15.
txt1 = DownloadString("http://tspoint......./info1.txt")  
16.
txt2= DownloadString("http://tspoint.......Programm.txt") 
17.
txt3= DownloadString("http://tspoint.......Fenstertitel.txt") 
18.
txt4= DownloadString("http://tspoint......./Fenstertitel1.txt") 
19.
txt5= DownloadString("http://tspoint.......test..txt") 
20.
 
21.
'Fenstertitel 
22.
sTitel = txt3 
23.
sTitel1 = txt4  
24.
 
25.
If not txt = "" Then  
26.
sMessage = txt 
27.
 
28.
Set WshShell = CreateObject("WScript.Shell") 
29.
 
30.
iReturn = WshShell.Popup(sMessage,txt5 , sTitel, vbInformation ) 
31.
End If  
32.
 
33.
 
34.
Select Case iReturn 
35.
Case -1 
36.
sMessage = txt1 
37.
End select 
38.
'WshShell.Popup sMessage, ,dddd  
39.
 
40.
If not txt1 = "" Then  
41.
'msgbox txt1 
42.
 
43.
iReturn = WshShell.Popup(txt1,0 , sTitel1, vbInformation ) 
44.
 
45.
End If  
46.
 
47.
Public Function DownloadString(ByVal URL) 'As String   
48.
Dim WebReq 'As MsXml2.XmlHttp   
49.
Dim FSO 'As Scripting.FileSystemObject   
50.
Set WebReq = CreateObject("WinHttp.WinHttpRequest.5.1") 
51.
Set FSO = CreateObject("Scripting.FileSystemObject")   
52.
WebReq.Open "get", URL, False   
53.
WebReq.Send   
54.
DownloadString = WebReq.ResponseText   
55.
 
56.
End Function  
57.
 
58.
If not txt2 = "" Then  
59.
StartApp txt2 
60.
End If  
61.
 
62.
 
Mitglied: rubberman
03.08.2011 um 01:38 Uhr
Hallo charmeur,

du könntest den Inhalt der Datei an den Zeilenumbrüchen in ein Array aufsplitten.
01.
Option Explicit 
02.
 
03.
Dim arrLines 
04.
Dim WshShell 
05.
Dim iReturn 
06.
Dim sMessage, sTitel, sTitel1 
07.
 
08.
arrLines = DownloadArray("http://tspoint.......daten.txt") 
09.
 
10.
If VarType(arrLines) <> vbEmpty Then 
11.
 
12.
  'Fenstertitel 
13.
  sTitel = arrLines(3) 
14.
  sTitel1 = arrLines(4) 
15.
 
16.
  If not arrLines(0) = "" Then 
17.
    sMessage = arrLines(0) 
18.
    Set WshShell = CreateObject("WScript.Shell") 
19.
    iReturn = WshShell.Popup(sMessage, arrLines(5), sTitel, vbInformation) 
20.
  End If 
21.
 
22.
  Select Case iReturn 
23.
    Case -1 
24.
      sMessage = arrLines(1) 
25.
  End select 
26.
   
27.
  If not arrLines(1) = "" Then 
28.
    'msgbox txt1 
29.
    iReturn = WshShell.Popup(arrLines(1), 0, sTitel1, vbInformation) 
30.
  End If 
31.
 
32.
  If not arrLines(2) = "" Then 
33.
    'StartApp arrLines(2) ' Habe ich auskommentiert, weil es keine Routine "StartApp" in deinem Code gibt. 
34.
  End If 
35.
 
36.
End If 
37.
 
38.
Public Function DownloadArray(ByVal URL) 'As String 
39.
  Dim WebReq 'As MsXml2.XmlHttp 
40.
  Dim FSO 'As Scripting.FileSystemObject 
41.
  Set WebReq = CreateObject("WinHttp.WinHttpRequest.5.1") 
42.
  Set FSO = CreateObject("Scripting.FileSystemObject") 
43.
  WebReq.Open "get", URL, False 
44.
  WebReq.Send 
45.
  DownloadArray = Split(WebReq.ResponseText, vbLf) 
46.
End Function
Grüße
rubberman
Bitte warten ..
Mitglied: Friemler
03.08.2011 um 01:44 Uhr
Hallo charmeur,

sowas lässt sich sehr einfach mit einem Objekt der Klasse für Reguläre Ausdrücke (RegExp) machen. Lege zu Testzwecken eine Datei mit folgendem Inhalt an:
01.
Info=Test 
02.
Info1=Test1 
03.
Programm=DasTolleProgramm.exe 
04.
Fenstertitel=Das Tolle Programm 
05.
Fenstertitel1=Ein Fenster des tollen Programms
Im folgenden Script den Pfad in Zeile 3 auf die eben erzeugte Datei setzen:
01.
Const ForReading = 1 
02.
 
03.
strInFile = "E:\Test.txt" 
04.
 
05.
Set objFSO    = CreateObject("Scripting.FileSystemObject") 
06.
Set objInFile = objFSO.OpenTextFile(strInFile, ForReading, False) 
07.
strContent    = objInFile.ReadAll 
08.
objInFile.Close 
09.
 
10.
strInfo          = ReadVarValue(strContent, "Info") 
11.
strInfo1         = ReadVarValue(strContent, "Info1") 
12.
strProgramm      = ReadVarValue(strContent, "Programm") 
13.
strFenstertitel  = ReadVarValue(strContent, "Fenstertitel") 
14.
strFenstertitel1 = ReadVarValue(strContent, "Fenstertitel1") 
15.
 
16.
WScript.Echo strInfo 
17.
WScript.Echo strInfo1 
18.
WScript.Echo strProgramm 
19.
WScript.Echo strFenstertitel 
20.
WScript.Echo strFenstertitel1 
21.
 
22.
 
23.
 
24.
Function ReadVarValue(strFileContent, strVarName) 
25.
  Dim objRegExp, colMatches 
26.
 
27.
  Set objRegExp        = New RegExp 
28.
  objRegExp.Global     = False 
29.
  objRegExp.IgnoreCase = True 
30.
  objRegExp.Pattern    = "(" & strVarName & ")=(.*)" 
31.
 
32.
  Set colMatches = objRegExp.Execute(strFileContent) 
33.
 
34.
  If colMatches.Count > 0 Then 
35.
    ReadVarValue = colMatches(0).SubMatches(1) 
36.
  Else 
37.
    ReadVarValue = "" 
38.
  End If 
39.
End Function
Die Datei wird erstmal komplett in eine Variable eingelesen (Zeile 7). In den Zeile 10 bis 14 wird die Suchfunktion aufgerufen, um den Wert zu ermitteln, der in der eingelesenen Datei bei der angegebenen Variable rechts vom Gleichheitszeichen steht.

In Zeile 30 wird das Suchmuster gesetzt. Der Ausdruck vor und nach dem Gleichheitszeichen wird durch die runden Klammern als Teiltreffer (Submatch) gekennzeichnet. Nachdem mit der Execute-Methode in Zeile 32 die Suche durchgeführt wurde, enthält die Variable colMatches eine Collection mit allen Treffern. Da

  1. in Zeile 28 durch setzen der Global-Eigenschaft auf False festgelegt wurde, dass nur der erste Treffer gefunden werden soll, auf den das Suchmuster passt
  2. es in der Datei für jeden Wert links des Gleichheitszeichens nur eine Zeile gibt, in der er auftritt

wird jedesmal höchstens ein Treffer gefunden, der in colMatches den Index 0 hat. Jeder Treffer, den Execute in die zurückgelieferte Collection einträgt, hat die Eigenschaft SubMatches, die Zugriff auf eine Collection mit Teiltreffern (Submatches) bietet. Der Wert hinter dem Gleichheitszeichen ist im Suchmuster der zweite eingeklammerte Block (.* bedeutet "Alle beliebige Zeichen, beliebig oft"), hat in der SubMatches-Collection also den Index 1. Deshalb kann mit colMatches(0).SubMatches(1) in Zeile 35 auf diesen Wert zugegriffen werden; er wird als Funktionsergebnis zurückgeliefert.

Gruß
Friemler
Bitte warten ..
Mitglied: charmeur
03.08.2011 um 22:22 Uhr
Zitat von charmeur:
hallo ihr ich bins mal wieder gg nun mal wieder etwas anderes hier habe ich noch ein code gebastelt (dank euch gg)
nun hätte ich da eine frage
es wird für verschiedenen optionen eine txt datei auf dem server angelegt, dies wäre nicht nötig wenn ich in der
lage wäre
wenn ich wüsste wie man aus einer txt datei eine bestimmte zeile auslesen könnte, hätte da jemand eine idee ?
01.
> Option Explicit 
02.
> Dim oXL 
03.
> Dim txt 'As String 
04.
> Dim txt1 'As String 
05.
> Dim txt2 'As String 
06.
> Dim txt3 'As String 
07.
> Dim txt4 'As String 
08.
> Dim txt5 'As String 
09.
>  
10.
> Dim WshShell 
11.
> Dim iReturn 
12.
> Dim sMessage, sTitel, sTitel1 
13.
>  
14.
> txt = DownloadString("http://tspoint.......info.txt")  
15.
> txt1 = DownloadString("http://tspoint......./info1.txt")  
16.
> txt2= DownloadString("http://tspoint.......Programm.txt") 
17.
> txt3= DownloadString("http://tspoint.......Fenstertitel.txt") 
18.
> txt4= DownloadString("http://tspoint......./Fenstertitel1.txt") 
19.
> txt5= DownloadString("http://tspoint.......test..txt") 
20.
>  
21.
> 'Fenstertitel 
22.
> sTitel = txt3 
23.
> sTitel1 = txt4  
24.
>  
25.
> If not txt = "" Then  
26.
> sMessage = txt 
27.
>  
28.
> Set WshShell = CreateObject("WScript.Shell") 
29.
>  
30.
> iReturn = WshShell.Popup(sMessage,txt5 , sTitel, vbInformation ) 
31.
> End If  
32.
>  
33.
>  
34.
> Select Case iReturn 
35.
> Case -1 
36.
> sMessage = txt1 
37.
> End select 
38.
> 'WshShell.Popup sMessage, ,dddd  
39.
>  
40.
> If not txt1 = "" Then  
41.
> 'msgbox txt1 
42.
>  
43.
> iReturn = WshShell.Popup(txt1,0 , sTitel1, vbInformation ) 
44.
>  
45.
> End If  
46.
>  
47.
> Public Function DownloadString(ByVal URL) 'As String   
48.
> Dim WebReq 'As MsXml2.XmlHttp   
49.
> Dim FSO 'As Scripting.FileSystemObject   
50.
> Set WebReq = CreateObject("WinHttp.WinHttpRequest.5.1") 
51.
> Set FSO = CreateObject("Scripting.FileSystemObject")   
52.
> WebReq.Open "get", URL, False   
53.
> WebReq.Send   
54.
> DownloadString = WebReq.ResponseText   
55.
>  
56.
> End Function  
57.
>  
58.
> If not txt2 = "" Then  
59.
> StartApp txt2 
60.
> End If  
61.
>  
62.
>  
63.
> 

erst mal danke für die hilfe
aber leuder bekomme ich den fehler 800A000D --- Typen unverträglich
muss ich etwas bei der txt Datei beachten bzw . wie sollte die aussehen?
Bitte warten ..
Mitglied: charmeur
03.08.2011 um 22:46 Uhr
das sript geht so weit danke nur habe ich das problem sobald ich eine eserver adresse angebe (http://...123.txt
gehts leider nicht mehr
Bitte warten ..
Mitglied: rubberman
04.08.2011 um 00:01 Uhr
Hallo charmeur.
Zitat von charmeur:
aber leuder bekomme ich den fehler 800A000D --- Typen unverträglich
muss ich etwas bei der txt Datei beachten bzw . wie sollte die aussehen?

1. Wir kennen den Inhalt deiner Textdatei(en) nicht
2. In der Fehlermeldung steht normalerweise auch die Zeilen- und Zeichennummer, wo der Fehler auftritt...

Grüße
rubberman
Bitte warten ..
Mitglied: charmeur
04.08.2011 um 00:27 Uhr
Zitat von rubberman:
Hallo charmeur.
> Zitat von charmeur:
> ----
> aber leuder bekomme ich den fehler 800A000D --- Typen unverträglich
> muss ich etwas bei der txt Datei beachten bzw . wie sollte die aussehen?
>
1. Wir kennen den Inhalt deiner Textdatei(en) nicht
2. In der Fehlermeldung steht normalerweise auch die Zeilen- und Zeichennummer, wo der Fehler auftritt...

Grüße
rubberman

ok da hast recht also
in der txt steht in der ersten zeile ein datum dann der name und anschliessend noch mal nen datum
und der fehler laut fehlerbild ist in Zeile 19 Zeichen 5
Bitte warten ..
Mitglied: rubberman
04.08.2011 um 00:41 Uhr
Dann beziehst du dich offensichtlich auf mein Script?!

Dann noch mal kurz zur Erklärung:
Das script splittet die Textdai in ein Array namens "arrLines"
In "arrLines(0)" findest du die erste Zeile der Datei ... in "arrLines(5)" die sechste Zeile (analog den ursprünglichen 6 Textdateien in deinem Ausgangsscript).
In Zeile 19 meines Scripts erwartet das Popup in "arrLines(5)" einen numerischen Wert (Zeit, wie lang das Popup angezeigt werden soll). Existiert in deiner Textdatei keine 6. Zeile bzw steht in dieser Zeile keine Zahl, wirst du diese Fehlermeldung bekommen.

Grüße
rubberman
Bitte warten ..
Mitglied: charmeur
04.08.2011 um 01:29 Uhr
Zitat von rubberman:
Dann beziehst du dich offensichtlich auf mein Script?!

Dann noch mal kurz zur Erklärung:
Das script splittet die Textdai in ein Array namens "arrLines"
In "arrLines(0)" findest du die erste Zeile der Datei ... in "arrLines(5)" die sechste Zeile (analog den
ursprünglichen 6 Textdateien in deinem Ausgangsscript).
In Zeile 19 meines Scripts erwartet das Popup in "arrLines(5)" einen numerischen Wert (Zeit, wie lang das Popup
angezeigt werden soll). Existiert in deiner Textdatei keine 6. Zeile bzw steht in dieser Zeile keine Zahl, wirst du diese
Fehlermeldung bekommen.

Grüße
rubberman

ach so ok hat soweit funktioniert ... sorry für mein unwissen
nun hätte ich da noch eine frage und zwar hast du in zeile 33
" ) ' Habe ich auskommentiert, weil es keine Routine "StartApp" in deinem Code gibt." geschrieben
was müsste man den da noch haben das ich ein programm starten kann?
Bitte warten ..
Mitglied: rubberman
04.08.2011 um 01:41 Uhr
Die Run Method á la
    WshShell.Run arrLines(2)
Grüße
rubberman
Bitte warten ..
Mitglied: charmeur
04.08.2011 um 01:55 Uhr
Super vielen lieben dank
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...