WinFuture-Forum.de: Erstellungsdatum ändern - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Erstellungsdatum ändern


#1 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 18. Juli 2009 - 16:23

Hi!
Ich hab ein kleines Problem und hoffe, dass es hier Leute gibt die mir helfenb können :cool:
Ich würde gerne wav Dateien in mp3 umwandeln, ohne dass sich das Erstellungsdatum ändert. Ist das irgendwie möglich? Also entweder eine direkte Möglichkeit mit lame oder über den Umweg, wo das Datumn aus der ursprünglichen Datei ausgelesen wird und bei der neuen Datei gesetzt wird, falls möglich.
Das ganze soll in eine Batch-Datei eingebunden werden.
Wenn jemand einen Tipp hat, wie ich wenigstens einmal das Datum auslesen kann wäre ich sehr dankbar!
0

Anzeige



#2 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 18. Juli 2009 - 19:00

Ich habe kurz mit C# eine kleine Konsolenanwendung dafür erstellt.

Erstellungsdatum auslesen:	  changecreated.exe -g <dateiname>
Erstellungsdatum setzen:		changecreated.exe -s <dateiname> "<datum>"


Sourcecode und Executeable sind in der angehängten ZIP-Datei. Man benötigt mindestens .NET 2.0.

Ich hoffe du kommst damit weiter, da ich mit BATCH direkt keine Möglichkeit sehe, das Erstellungsdatum zu verändern.

Viele Grüße,
Stefan

€: Anhang entfernt. Neue Version siehe weiter unten.

Dieser Beitrag wurde von Diewie bearbeitet: 20. Juli 2009 - 17:33

0

#3 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 19. Juli 2009 - 11:04

Danke! Das ist wirklich super!
In welchem Format muss ich denn hier das Datum eingeben? :wink:
0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 19. Juli 2009 - 11:33

DateTime.Parse() nimmt so ziemlich jedes Datumsformat entgegen, das man als Datum nur irgendwie interpretieren kann.

Ich gebe das Datum immer im Format "dd.mm.jjjj hh:ii:ss" ein, also z.B. "19.07.2009 12:30:23". Wenn du das Datum eh mit diesem Tool vorher ausliest, dann kannst du das ja in einer Variable speichern und einfach wieder so zurückgeben. Die Anführungszeichen um das Datum sind beim Setzen des Datums nicht unbedingt erforderlich.

Dieser Beitrag wurde von Diewie bearbeitet: 19. Juli 2009 - 11:33

0

#5 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 19. Juli 2009 - 18:14

Perfekt!
In c# kenn ich mich ein bisschen aus also könnte ich das über den Sourcecode machen, aber in der Batch Datei wärs mir lieber.. also wie bekomme ich das ausgelesene Datum in eine Variable? Mit Variablen in Batch Dateien kenn ich mich überhaupt nicht aus :)
0

#6 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 19. Juli 2009 - 18:39

Achso, ich dachte, das ist für dich kein Problem, da du ja die Umwandlung sowieso mit einem BATCH-Skript machen wolltest.
Hier ist ein Beispiel, wie du das machen kannst:

rem Der Name der "alten" wav-Datei
set eingabe_datei=test.txt
rem Der Name der "neuen" mp3-Datei
set ausgabe_datei=neu.txt

rem Das alte Erstelldatum merken
for /f "delims=" %%A in ('changecreated.exe -g %eingabe_datei%') do set erstelldatum=%%A

rem Hier erzeugst du deine mp3 aus der wav

rem Der neuen Datei das alte Erstelldatum zuweisen
changecreated.exe -s %ausgabe_datei% %erstelldatum%


Die Kommentare dürften eigentlich alles erklären. Ansonsten kannst du ja nachfragen :)

Viele Grüße,
Stefan
0

#7 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 19. Juli 2009 - 19:32

Danke! Dein Script funktioniert super, aber in Verbindung mit meinem geht es nicht... meines sieht so aus:
FOR /F "usebackq tokens=1,2 delims=." %%a IN (`dir /B *.wav`) DO (
lame.exe "%%a.wav" "%%a.mp3"
del "%%a.wav"

0

#8 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 19. Juli 2009 - 20:16

Ich habe kurz mein Skript eingebaut:
FOR /F "usebackq tokens=1,2 delims=." %%a IN (`dir /B *.wav`) DO (
lame.exe "%%a.wav" "%%a.mp3"
for /f "usebackq delims=" %%b in (`changecreated.exe -g "%%a.wav"`) DO (set erstelldatum=%%b)
del "%%a.wav"
changecreated.exe -s "%%a.mp3" %erstelldatum%
)


So dürfte das Skript machen, was du willst :rolleyes:

Viele Grüße,
Stefan
0

#9 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 19. Juli 2009 - 20:23

Es funktioniert immer noch nicht... Bei der letzten Zeile schreibt er immer, dass ein Fehler aufgetreten ist und 3 Parameter notwendig sind :rolleyes:
0

#10 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 19. Juli 2009 - 20:33

Das Problem tritt vielleicht wegen dem Token=1,2 in deiner Schleife auf, da ich in meiner "Schleife" das %%b verwende.

Probier mal die folgende Version:
FOR /F "usebackq tokens=1 delims=." %%a IN (`dir /B *.wav`) DO (
lame.exe "%%a.wav" "%%a.mp3"
for /f "usebackq delims=" %%b in (`changecreated.exe -g "%%a.wav"`) DO (set erstelldatum=%%b)
del "%%a.wav"
changecreated.exe -s "%%a.mp3" %erstelldatum%
)

0

#11 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 19. Juli 2009 - 20:39

Immer noch das selbe Problem :rolleyes:
Irgendwie scheint die Variable erstelldatum leer zu sein, wenn ich sie mir in der Schleife ausgeben lasse erhalte ich eine leere Zeile, nach der Schleife funktioniert es aber <_<
0

#12 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 19. Juli 2009 - 20:44

Scheinbar funktionieren die verschachtelten FOR-Schleifen nicht, wenn man die BATCH Datei direkt startet.
Ich werde mir das morgen mal genauer anschauen.
0

#13 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 19. Juli 2009 - 20:47

Okay, danke... :rolleyes:)
0

#14 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 20. Juli 2009 - 15:54

So, nun dürfte das Problem behoben sein. Ich habe einfach eine neue Funktion in die changecreated.exe eingefügt, so dass diese nun auch das Erstelldatum von einer Datei auf die andere übertragen kann.

Erstellungsdatum auslesen:	  changecreated.exe -g <dateiname>
Erstellungsdatum setzen:		changecreated.exe -s <dateiname> "<datum>"
Erstellungsdatum übernehmen:	changecreated.exe -o <referenz_dateiname> <ziel_dateiname>

Mit den Schaltern -ss und -os erfolgt jeweils keine Ausgabe bei der Änderung.


Die .bat sieht dann folgendermaßen aus:
FOR /F "usebackq tokens=1 delims=." %%a IN (`dir /B *.wav`) DO (
lame.exe "%%a.wav" "%%a.mp3"
changecreated.exe -os "%%a.wav" "%%a.mp3"
del "%%a.wav"
)


Executebale, Batch-Skript und Source-Code sind in der angehängten ZIP-Datei.

Viele Grüße,
Stefan

Angehängte Datei(en)


0

#15 Mitglied ist offline   blubb 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 28. Mai 06
  • Reputation: 0

geschrieben 20. Juli 2009 - 16:12

geht immer noch nicht :) er sagt wieder dass 2 parameter notwendig sind :D
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0