newbeee
Goto Top

Geändert am Datum einer Datei in Dateinamen aufnehmen mit Uhrzeit

Hallo guten Tag,
ich hätte mal ne Frage, vielleicht könnte mir jemand helfen.
Ich habe im Forum diesen Thread gefunden:

Frage:
Hallo zusammen,
habe in einem Beitrag hier folgende von mir leicht abgewandelte batch gefunden.
Wenn man per Maus Dateien auf diesen batch zieht und loslässt, wird das aktuelle Datum in den Dateinamen übernommen und vor den alten Dateinamen gesetzt.
Wie bekomme ich denn auf dem selben Weg das "geändert am" Datum der Datei statt dem aktuellen Datum vor den Dateinamen?
Wie muss der Batch aussehen damit das klappt?
Danke für Eure Hilfe!!!

Grüße lulli1


Antwort bastla:
01.
:: *AenderungsDatum_in_Dateiname.bat
02.
@echo off & setlocal
03.
04.
for %%i in (%1) do for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do set "CDATE=%%c-%%b-%%a"
05.
@echo %cdate%
06.
07.
:start
08.
ren %1 "%cdate%_%~nx1%"
09.
10.
if "%~2"=="" goto :eof
11.
if not exist %2 goto :eof
12.
13.
shift
14.
goto :start

hier der Original-Thread:
geändert am Datum einer Datei in Dateinamen aufnehmen


und es funktioniert super!!
Jetzt ist mein Problem, daß ich auch gerne noch die Uhrzeit im neuen Dateinamen hätte.
Hat da jemand ein Lösung?

Danke schön, Philipp

Content-Key: 173492

Url: https://administrator.de/contentid/173492

Printed on: April 19, 2024 at 01:04 o'clock

Mitglied: 60730
60730 Sep 21, 2011 at 19:44:22 (UTC)
Goto Top
moin,

  • du nimmst dir mal die Bastlasche Batch vor und zerlegst die in Einzelteile.
  • das echo off nimmst du raus.

spiele speziell mit dieser Zeile, und finde in einer Dosbox mittels for /? heraus, was die macht und ändere es dann so, wie du es haben willst.

for %%i in (%1) do for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do set "CDATE=%%c-%%b-%%a"


und schau dir bitte mal die code Tags im Forum an... (Formatierungshilfe)


Gruß
Member: newbeee
newbeee Sep 21, 2011 at 19:54:56 (UTC)
Goto Top
Hallo Timo, vielen Dank für deine Antwort!
Mein Problem ist, ich hab überhauptkeine Ahnung von der Materie,
da ist nix mit spielen face-smile
Hab schon Freudensprünge gemacht, daß dieses Batch läuft.
Könntest du mir vielleicht das Bastlasche Batch so umschreiben, daß es die Uhrzeit mit in den Namen aufnimmt?

Danke!
Mitglied: 60730
60730 Sep 21, 2011 at 20:14:35 (UTC)
Goto Top
Zitat von @newbeee:
Hallo Timo, vielen Dank für deine Antwort!
Mein Problem ist, ich hab überhauptkeine Ahnung von der Materie, da ist nix mit spielen face-smile

Mein "Problem" ist - ich hab mehr Lust jemandem spielend was beizubringen, als jemandem etwas vorzukauen.

Hab schon Freudensprünge gemacht, daß dieses Batch läuft.
Könntest du mir vielleicht das Bastlasche Batch so umschreiben, daß es die Uhrzeit mit in den Namen aufnimmt?
Könnte ich...
Aber ich sehe immer noch keine Code Tags in deiner Frage....
Danke!

Immer erst danke schreiben, wenns läuft...


  • Nimm das echo off raus,
  • mache eine neue zeile 7 , in der steht pause drin - schau dir an, was die oben zitierte zeile macht.
  • frage dich, was es mit "delims=. " auf sich hat und was "delims=:. " machen könnte
  • warum 1-3, wenn original schon 5 Werte da stehen
  • welche 4 Buchstaben im alphabet nach A kommen.

Gruß
Member: newbeee
newbeee Sep 21, 2011 at 20:30:16 (UTC)
Goto Top
Ich würde ja gerne lernen, aber ich hab wirklich nullkommagarnix Ahnung von Programmieren.
Delims sagt mir nix und ich kann nicht mal beurteilen was Werte sind, geschweige denn wieviele da drinne stehen.
Das mit den Buchstaben geht noch...

han es jetzt so bearbeitet, aber es geht nicht face-sad

:: *AenderungsDatum_in_Dateiname.bat
for %%i in (%1) do for /f "tokens=1-5 delims=. " %%a in ("%%~ti") do set CDATE=%%f-%%e-%%d-%%c-%%b-%%a"
@echo %cdate%
:pause
ren %1 "%cdate%_%~nx1%"
if "%~2"=="" goto :eof
if not exist %2 goto :eof
shift
goto :start
Mitglied: 60730
60730 Sep 21, 2011 at 20:35:36 (UTC)
Goto Top
ei bubb...

:: *AenderungsDatum_in_Dateiname.bat
for %%i in (%1) do for /f "tokens=1-5 delims=. " %%a in ("%%~ti") do set "CDATE=%%e-%%d-%%c-%%b-%%a"  
@echo %cdate%
:pause
ren %1 "%cdate%_%~nx1%"  
if "%~2"=="" goto :eof  
if not exist %2 goto :eof
shift
goto :start

Wo schrub ich dir, du sollst mit einem doppelpunkt die neue Zeile mit der Pause vom Stapellauf (insider für Batch) abhalten?
Aber das ich dir nun zum 3. mal was von Code Tags schreibe face-sad
frage dich, was es mit "delims=. " auf sich hat und was "delims=:. " machen könnte
for %%i in (%1) do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do set "CDATEtime=%%c-%%b-%%a-%%d-%%e"  
@echo %CDATEtime%
pause


kleb bitte den How can I mark a post as solved? dran

Ich kann das nicht auch noch übernehmen.

N8
Member: newbeee
newbeee Sep 21, 2011 at 21:20:02 (UTC)
Goto Top
Jetzt trotzdem mal ein Danke für deine Geduld, es geht bei mir irgendwie immer noch nicht.
Hab es jetzt so zusammengeschrieben:

for %%i in (%1) do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do set "CDATEtime=%%c-%%b-%%a-%%d-%%e"
@echo %CDATEtime%
pause
ren %1 "%cdate%_%~nx1%"
if "%~2"=="" goto :eof
if not exist %2 goto :eof
shift
goto :start

sorry-sorry wenn ich mich blöd anstelle.
Ich hab nix zu "Code Tags" geschrieben, weil ich nicht weiß was das ist.

p.s Es kommt ein schwarzes DOS-Fenster und ich soll eine beliebige Taste drücken,
die Uhrzeit sehe ich aber in dem schwarzen Fenster, also es kann nicht mehr weit sein
Mitglied: 60730
60730 Sep 21, 2011 at 21:26:52 (UTC)
Goto Top
Servus again und nachträglich willkommen...

Zitat von @newbeee:
  • hmm der Nick ist doch nixxx....
Jetzt trotzdem mal ein Danke für deine Geduld, es geht bei mir irgendwie immer noch nicht.
Hab es jetzt so zusammengeschrieben:

for %%i in (%1) do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do set "CDATEtime=%%c-%%b-%%a-%%d-%%e"   
@echo %CDATEtime% 
pause

Und wenn du das "laufen" läßt...., was steht dann in der Dosbox?

ren %1 "%cdate%_%~nx1%"
  • macht der Variablen Name cdate noch Sinn, wenn da nicht nur das datum, sondern auch die Uhrzeit drinsteht und wenn nein - und oben die Variable nicht mehr cdate genommen wird - welchen Grund gibt es die dann nicht hier unten weiter zu nutzen?
if "%~2"=="" goto :eof   
if not exist %2 goto :eof 
shift 
goto :start

sorry-sorry wenn ich mich blöd anstelle.
Ich hab nix zu "Code Tags" geschrieben, weil ich nicht weiß was das ist.
<code></code> ist der Unterschied zwischen deinen und meinen Zeilen in der die Batch steht...

edit
C:\>for %i in (C:\ntdetect.com) do for /F "tokens=1-5 delims=.: " %a in ("%~ti") do set "CDATEtime=%c-%b-%a-%d-%e"

C:\>for /F "tokens=1-5 delims=.: " %a in ("04.08.2004 10:00") do set "CDATEtime=%c-%b-%a-%d-%e"

C:\>set "CDATEtime=2004-08-04-10-00"
2004-08-04-10-00

C:\>pause
Drücken Sie eine beliebige Taste . . .

Gruß
Member: newbeee
newbeee Sep 21, 2011 at 21:51:16 (UTC)
Goto Top
ok, hab das mit CDATEtime reingeschrieben, geht leider immer noch nicht.
Jetzt siehts so aus:

:: *AenderungsDatum_in_Dateiname.bat
for %%i in (%1) do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do set "CDATEtime=%%c-%%b-%%a-%%d-%%e"
@echo %CDATEtime%
pause
ren %1 "%CDATEtime%_%~nx1%"
if "%~2"=="" goto :eof
if not exist %2 goto :eof
shift
goto :start

Der Nick passt doch, ich hab Null Ahnung.

Es steht in der Dos-Box das, was du auch geschrieben hast, aber die Datei wird nicht umbenannt.

" ist der Unterschied zwischen deinen und meinen Zeilen in der die Batch steht..."
Das kapier ich überhaupt nicht.

Gruß
Member: newbeee
newbeee Sep 21, 2011 at 21:52:35 (UTC)
Goto Top
Zitat von @60730:
Servus again und nachträglich willkommen...


face-smile
Mitglied: 60730
60730 Sep 21, 2011 at 22:29:13 (UTC)
Goto Top
"<code></code> ist der Unterschied zwischen deinen und meinen Zeilen in der die Batch steht..."
Das kapier ich überhaupt nicht.
Fällt dir nicht ein klitschkokleiner Unterschied zwischen deinen und meinen zeilen auf - nicht inhaltlich, sondern optisch?
for %%i in (%1) do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do set "CDATEtime=%%c-%%b-%%a-%%d-%%e"  
@echo %CDATEtime%
ren %1 "%CDATEtime%_%~nx1%"  
pause 

C:\>"C:\bastlawouldkillme\hoffnungsloserfall.cmd " "C:\bastlawouldkillme\Neu Textdokument.txt"

C:\>for %i in ("C:\bastlawouldkillme\Neu Textdokument.txt") do for /F "tokens=1-5 deli
ms=.: " %a in ("%~ti") do set "CDATEtime=%c-%b-%a-%d-%e"

C:\>for /F "tokens=1-5 delims=.: " %a in ("22.09.2011 00:28") do set "CDATEtime=
%c-%b-%a-%d-%e"

C:\>set "CDATEtime=2011-09-22-00-28"
2011-09-22-00-28

C:\>ren "C:\bastlawouldkillme\Neu Textdokument.txt" "2011-09-22-00-28_Neu Textdokument
.txt"

C:\>pause
Drücken Sie eine beliebige Taste . . .

C:\>

p.s Es kommt ein schwarzes DOS-Fenster und ich soll eine beliebige Taste drücken,
die Uhrzeit sehe ich aber in dem schwarzen Fenster, also es kann nicht mehr weit sein

Drücke bitte nicht die Anykeytaste!

Der Nick passt doch, ich hab Null Ahnung.
Und daran willst du mal was ändern, oder bist du nur wegen dem einem Problem da und nach dem "Problem" kommt die Sintflut? ein durchgestrichener Nick
, der aus zahlen besteht
?

Gute Nacht, ich muß leider draussen schlafen....
Member: newbeee
newbeee Sep 21, 2011 at 23:42:38 (UTC)
Goto Top
Mannomann, du hast mir ja nicht leicht gemacht... aber jetzt klappts!
Hab da jetzt wild hin und herprobiert bis sie letztendlich so aussah:

:: *AenderungsDatum_in_Dateiname.bat
:start
for %%i in (%1) do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do set "CDATEtime=%%c-%%b-%%a-%%d-%%e"
@echo %CDATEtime%

ren %1 "%CDATEtime%_%~nx1%"

if "%~2"=="" goto :eof
if not exist %2 goto :eof
shift
goto :start

Gute Nacht und jetzt "DANKE"
Member: Skyemugen
Skyemugen Sep 22, 2011 at 06:15:28 (UTC)
Goto Top
Zitat von @newbeee:
Mannomann, du hast mir ja nicht leicht gemacht... aber jetzt klappts!
[OT]... wer macht es hier wem nicht leicht?

Dass T-Mo die Geduld mit dir aufbrachte, ist erstaunlich ... wer so dümmlich ist (ja, wenn man nach so langem Starren auf etwas vorgekautes mit beschriebenen -Tags immer noch nicht in der Lage ist, sie zu benutzen, ist man ganz einfach dümmlich ... wozu steht eigentlich in rot Formatierungshilfe? ...

Der Nick passt doch, ich hab Null Ahnung.
Nur können wir hier darüber nicht schmunzeln, wenn man sich fast schon lernresistent hinstellt und sagt Warum denn, ich hab' doch mein Schild, auf dem steht, dass ich nichts können werde

... ehrlich das passt vielleicht ins Gulli-Board aber nicht ins Administrator.de-Forum ...

Hoffen wir, dass sich das bessern wird.

greetz André

P.S.: Learning by doing / rumspieling nutzt mehr als kopiering by T-Mo-vorkauing-lassing ...
[/OT]

@t-mo, Respekt, ich wär' hier schon geplatzt face-wink

edit: umgeändert in dümmlich