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

Datei verschieben, solange probieren bis erfolgreich

Frage Entwicklung VB for Applications

Mitglied: MISTAX

MISTAX (Level 1) - Jetzt verbinden

17.12.2008, aktualisiert 18:17 Uhr, 3262 Aufrufe, 3 Kommentare

Hallo zusammen,

ich möchte einen eigentlich schon in BATCH programmierten Prozess optimieren, und von dem, was ich von VBS weiss, wäre das ein geeigneter Weg.
Nun ist es aber so, dass ich nicht ohne Grund in BATCH programmiert habe - VBS kann ich nämlich nicht.

Um Folgendes geht es:
Automatisiert wird ein Encodiervorgang gestartet (Video wird zu Flash umgewandelt). Da ich leider keine Möglichkeit habe, dem Encodierprogramm einen "Do After"-Befehl zu geben, muss ich anders feststellen, wann die Datei fertig encodiert ist.

Meine Vorgehensweise ist die: Ich starte den Encodiervorgang um 18:00 automatisch. Er dauert geschätzt 20min. Also führe ich um 18:18 eine BATCH aus, die versucht die Datei zu verschieben. Wenn das nicht möglich ist wird noch encodiert (if errorlevel 1 goto RETRY). Bei :RETRY wird 10Sekunden gewartet und der Move-Befehl erneut ausgeführt, solange bis erfolgreich, daanch werden weitere Befehle ausgeführt, die aber hier nichts zur Sache tun.

Der Punkt ist jetzt, dass diese WAIT-Aktion per Batch die CPU dermaßen auslastet, dass alles andere sehr langsam wird, deswegen würde ich es gerne über VBS mit sleep lösen.

Ich habe mir schon VBS-Happen aus dem Netz zusammengesucht, die vermutlich das machen, was ich möchte, und wäre jetzt sehr dankbar, wenn mir das jmd. flux zusammenbaut.

Die Datei heisst immer ENCODE.flv und liegt z.B. auf "C:\ENCODE" und soll nach "C:\ENCODED"

Hier habe ich was gefunden, was alle Dateien aus dem einen in den anderen Ordner verschiebt, ich brauchs aber ja nur für genau eine Datei, deren Namen ich schon weiss; ausserdem soll er es ja bei einem Fehler solange probieren, bis es klappt:

01.
'******************************************************
02.
' WSH - VBSkript: move_file.vbs 
03.
'  - verschiebt Dateien von einem festgelegten Quell-  
04.
'    in einen festgelegten Zielordner 
05.
'  - falls im Zielordner eine Datei vorhanden ist wird 
06.
'    diese nicht verschoben 
07.
'******************************************************
08.
  
09.
Option Explicit 
10.
Dim fso, oFile, oFiles, oFolder 
11.
Dim sQuelle, sZiel, sMsg 
12.
  
13.
On Error Resume Next 
14.
  
15.
Set fso = CreateObject("Scripting.FileSystemObject"
16.
Set oFolder = fso.GetFolder("C:\bilder"
17.
Set oFiles = oFolder.Files 
18.
  
19.
sZiel = "C:\sammlung\" 
20.
  
21.
For Each oFile In oFiles 
22.
 sQuelle = fso.GetAbsolutePathName(oFile) 
23.
 fso.MoveFile sQuelle, sZiel 
24.
  
25.
 If Err.Number <> 0 Then 
26.
  sMsg = Err.Description 
27.
  
28.
  Select Case Err.Number 
29.
   Case 58 
30.
    sMsg = sMsg & vbCrlf & vbCrlf & sQuelle 
31.
   Case 76 
32.
    sMsg = sMsg & vbCrlf & vbCrlf & sZiel 
33.
   Case Else 
34.
    sMsg = sMsg 
35.
  End Select 
36.
  
37.
  MsgBox sMsg, 48, "Fehler!" 
38.
  Err.Clear 
39.
 End If 
40.
Next 
41.
  
42.
MsgBox "Ende", 64, "Info"
Wenn ein Fehler beim Verschieben der einen Datei auftritt, soll das passieren:

01.
WScript.Sleep 10 * 1000 
02.
Loop
Wenn die Datei erfolgreich verschoben wurde soll noch eine Batch ausgeführt werden und die VBS beendet werden.

Ich danke euch bereits jetzt im Vorraus! Ich würde es selbst machen, aber ich weiss nicht wie die Errorlevel-Funktion bzw. goto :Marker bei VBS funktioniert.
Mitglied: 60730
17.12.2008 um 17:48 Uhr
Servus,

Um Folgendes geht es:
Automatisiert wird ein Encodiervorgang gestartet (Video wird zu Flash umgewandelt).
Da ich leider keine Möglichkeit habe, dem Encodierprogramm einen
"Do After"-Befehl zu geben, muss ich anders feststellen, wann die Datei fertig encodiert ist.

  • Jein

Kannst du das "Do After nicht aus dem Script heraus erzeugen, das den Encodiervorgang antreibt?

01.
start /wait encode 123.mpg 123.swf 
02.
move 123.swf ziel\123.swf
Gruß
Bitte warten ..
Mitglied: VW
17.12.2008 um 18:17 Uhr
Moin,

interessant wäre auch, was du als WAIT-Funktion verwendest. Ich kenne das von IBM-Notebooks z.B. so, dass die eine IBMwait.exe oder so mit einem Zeit-Wert in Sekunden ansteuern.
Ich verwende meist statt wait einen
ping 127.0.0.1 -n 30
wenn ich z.B. 30 Sekunden Wartezeit erzeugen möchte. Mir ist dabei noch nicht aufgefallen, dass ein Ping die CPU übermäßig auslasten würde.

MfG,
VW
Bitte warten ..
Mitglied: MISTAX
19.12.2008 um 13:46 Uhr
@Timo, das Encoding-Programm wird per aufgezeichneter Mausgesten gestartet, da es sich anders überhaupt nicht automatisieren lässt.

@VW das mit dem Ping könnte ich wirklich probieren... Ich verwende eine vor Urzeiten im Netz gefundene wait.exe die ich per "wait %zeit%" ansteuern kann.
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail
Bestimmte Elemente und Ordner per klick in PST Datei verschieben (5)

Frage von piwo91 zum Thema Outlook & Mail ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Batch & Shell
Datei nach Erstellungsdatum verschieben (2)

Frage von Kugelschreiber1 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...

Microsoft
gelöst Subnetting: In welchem Subnetz befindet sich die IP? (12)

Frage von winler zum Thema Microsoft ...