Top-Themen

Aktuelle Themen (A bis Z)

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

Batch per VBS schreiben und ausführen

Frage Entwicklung Batch & Shell

Mitglied: Vodkanier

Vodkanier (Level 1) - Jetzt verbinden

04.08.2008, aktualisiert 05.08.2008, 9035 Aufrufe, 6 Kommentare

Hallo,
ich versuche momentan ein VBS script zu schreiben, das Dateiveränderungen überwacht. Hierfür nutze ich rehash (rehash.sourceforge.net) zum Berechnen von Hashwerten. Leider schaffe ich es nicht das Tool mit Hilfe von VBS korrekt aufzurufen. Deswegen lasse ich VBS eine batch-Datei schreiben die auch korrekt erstellt wird. Eigenartigerweise taucht beim Ausführen der batch dann aber ein "1>", obwohl es in der Batch nicht steht.

Ich hänge den VBS Teil an:
01.
OPTION EXPLICIT 
02.
 
03.
dim objFSO                  ' Filesystemobject 
04.
dim FCIV                    ' FCIV Anweisung  
05.
dim Folder                  ' zu scannendes Verzeichnis 
06.
folder = "C:\Download" 
07.
dim Output  
08.
Output = "C:\Output" 
09.
 
10.
dim objFile 
11.
 
12.
dim datum                   ' Zeit und Datum um Logs zu benennen 
13.
datum=date() 
14.
dim zeit 
15.
zeit=time() 
16.
zeit = Replace(zeit,":","")   ': entfernen aus Uhrzeit 
17.
datum = Replace(datum,".","") '. entfernen aus Datum 
18.
 
19.
Const ForWriting = 2 				' Konstante zum Schreiben in Dateien, bestehender Inhalt wird gelöscht 
20.
Const ForAppending = 8 				' Konstante zum Hinzufügen von Datensätzen 
21.
 
22.
dim objshell 
23.
 
24.
Set objShell = WScript.CreateObject("WScript.Shell")  
25.
 
26.
 
27.
Set objFSO = CreateObject("Scripting.FileSystemObject")								' (Datei) Zugriffsobjekt erstellen 
28.
 
29.
 
30.
 
31.
 
32.
 
33.
' Pfad der überprüft werden soll 
34.
if objFSO.FolderExists(Folder) = false then wscript.echo "Der Ordner, der geprüft werden soll, existiert nicht!" 
35.
	  
36.
' Pfad für Ergebnisse: Output 
37.
if objFSO.FolderExists(output) = false then 
38.
	objFSO.CreateFolder(output)  
39.
	else 
40.
	wscript.echo "Ordner existiert schon: " & output 
41.
end if 
42.
 
43.
' Batchgenerator 
44.
FCIV = "rehash.exe -r -none -ed2k -sha1 -md5 -out:txt " & folder & "\*.* " & chr(62) & " " & output & "\" & datum & "_" & zeit & "_FCIV.log"  
45.
wscript.echo FCIV 
46.
set objFile = objFSO.OpenTextFile("rehash.bat", ForWriting, true) 
47.
objFile.Write(FCIV) 
48.
objFile.Close 
49.
 
50.
objshell.run "rehash.bat",,True 
51.
 
Noch ein Beispiel für das 1> Problem, aus der CMD kopiert:
"rehash.exe -r -none -ed2k -sha1 -md5 -out:txt C:\Download\*.* 1>C:\Output\04082008_165541_FCIV.log"

Ich wäre für Hilfe sehr dankbar.

Gruß Vodkanier

PS: Ursprünglich habe ich das MS Tool FCIV verwendet, deswegen auch die Variable.
Mitglied: xmicha
04.08.2008 um 17:20 Uhr
Hallo =)
Ich bin auch grade dabei ein Programm mittels VB zu schreiben.

Ich habe gelesen das du mein Problem gelöst hasst und wär froh wenn du mir mal helfen würdest.

Mein Problem:
Ich habe in einem Formular zwei CheckBoxen eingeführt und ein Button.

Sobald ich eine der jeweiligen CheckBoxen anklicke soll eine Batch geschrieben werden mit inhalt

01.
  
02.
@echo off 
03.
start C:/lol.exe
und wenn man dann anschließend auf den Button klickt soll die Batch gestartet werden.

Da ich noch anfänger bin wär ich froh wenn du mir helfen würdest aber bitte ausfühliche antworten
danke im voraus
Bitte warten ..
Mitglied: bastla
04.08.2008 um 18:40 Uhr
Hallo Vodkanianer!

Was genau ist das Problem dabei?

Die eingefügte "1" vor dem ">" zeigt nur an, dass STDOUT umgeleitet wird - an der Funktionalität ändert das aber nichts ...

Nachvollziehen kannst Du das ganz einfach, indem Du eine Batchdatei
01.
dir c:\Output >nul 
02.
pause
erstellst und ausführst ...

Da eine Umleitung in Batch defaultmäßig für den angesprochenen Kanal 1 (STDOUT) gilt, wird üblicherweise in Batch nur das Umleitungszeichen (">" oder ">>") geschrieben; anders ist dies bei der Umleitung der Fehlermeldungen von STDERR - dafür ist dann "2>" zu verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: Vodkanier
05.08.2008 um 07:22 Uhr
Das Problem ist, das wenn ich nun die Batch aufrufe
01.
Set oShell = WScript.CreateObject("WScript.Shell")  
02.
oShell.Run "C:\rehash\rehash.bat",,true
erhalte ich nur 0KB Logs, mit denen ich dann verständlicherweise nicht weiterarbeiten kann. Auch der Versuch, es über eine seperate Launcher-.bat ausführen mithilfe von "Call" (damit VBS erst weiterläuft, nach dem die batch durchgelaufen ist), schlug fehl.
Bitte warten ..
Mitglied: Vodkanier
05.08.2008 um 07:53 Uhr
@xmicha

Also in VBS sähe es wie folgt aus(ungetestet), wobei ich nie wirklich Buttons/Checkboxen verwende.


01.
Const ForWriting = 2 				' Konstante zum Schreiben in Dateien, bestehender Inhalt wird gelöscht 
02.
 
03.
' Erstellen der Batchdatei 
04.
set objFile = objFSO.OpenTextFile("lol.bat", ForWriting, true) 
05.
objFile.Write("@echo off" & vbcrlf & "start C:/lol.exe") 
06.
objFile.Close 
07.
 
08.
'Ausführen der Batch 
09.
Set objShell = WScript.CreateObject("WScript.Shell") 
10.
objShell.Run "lol.bat", , True               ' Batch ausführen, VBS wartet bis Batch abgearbeitet ist
Wie du das ganze an deine Checkboxen/Buttons koppelts, kann ich dir aber leider (noch) nicht sagen =)
Aber vielleicht hilft dir das schon weiter.
Bitte warten ..
Mitglied: bastla
05.08.2008 um 10:16 Uhr
Hallo Vodkanianer!

Versuch es damit, den vollen Pfad zur "rehash.exe" anzugeben bzw diese in einem der in %PATH% enthaltenen Verzeichnisse (etwa %WINDIR% oder %WINDIR%\System32) abzulegen - ansonsten funktioniert das Script bei mir klaglos.

Grüße
bastla
Bitte warten ..
Mitglied: aFankhauser
17.05.2009 um 13:06 Uhr
@ xmicha

kenne zwar VB nicht aber dafür hta. vielleicht kann dir das weiterhelfen:

in hta sieht eine checkbox wie folgt aus:
01.
<input type="checkbox" id="haken" onclick="rRoutine">
und das script dazu: (Vb-SCRIPT ist zwar ähnich wie VB. aber nicht das selbe du müsstest es daher noch anpassen)
01.
sub rRoutine 
02.
 outputFile = "Dateiname.bat" 
03.
 set fso = CreateObject("scripting.FileSystemObject") 
04.
 
05.
 set datei = fso.opentextfile(outputFile, 2, 1) 
06.
 datei.write "echo erste Zeile" & vbCrLf 
07.
 datei.write "echo zweite zeile" & vbCrLf 
08.
 datei.write "pause" 
09.
 datei.close 
10.
end sub
Bitte warten ..
Ähnliche Inhalte
Windows 10
Mit einer batch Datei etwas in eine andere batch Datei schreiben und ausführen
Frage von RaphaelStockWindows 105 Kommentare

Hey Administratoren!! Ich habe ein Problem: Ich möchte alle 40 sek etwas in eine batch Datei schreiben und ausführen ...

Batch & Shell
Vbs Skript auf remote Rechnern ausführen lassen und ergebnis schreiben
Frage von winlinBatch & Shell4 Kommentare

Hallo Leute, ich habe ein VB-Skript welches mir die Netzwerkgeschwindigkeit auf meinem Adminrechner ausliest und mir grafisch ausgibt: Wenn ...

Batch & Shell
Batch: Batch in batch in cfg schreiben
gelöst Frage von pixelBfBatch & Shell2 Kommentare

Hayy, ich bin neu hier im forum:)) Meine frage: Kann ich eine batch schreiben die was in eine batch ...

VB for Applications
VBS .txt Inhalt vor schreiben löschen
Frage von deathhollyVB for Applications8 Kommentare

Hallo, ich habe folgendes Script. Es funktioniert auch, nur das wenn ich es im Overwrite Modus öffne, schreibt es ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 4 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 11 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 13 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 16 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...