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

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, 8959 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Entwicklung
gelöst Mit Batch,VBS,Powershell Windows einrichten (1)

Frage von Justin98 zum Thema Entwicklung ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...