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, 3255 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.

Mit freundlichen Grüßen,
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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...