Datei Änderungsdatum
Ich habe eine Datei "Kbuch.xlms" in einem Pfad_1 abgespeichert.
Ich möchte mit einer batch-Datei, die nicht unbedingt unter dem Pfad_1 abgespeichert ist das Änderungsdatum mit Änderungszeit auslesen ebenso die Zeit der Dateierstellung mit der
zugehörigen Zeit auslesen.
Die Ausgaben sollen logisch getrennt über echo in eine Datei im Pfad_1 ausgegeben werden.
Die Datei "Kbuch.xlms" könnte eine beliebige andere Datei sein.
Der Pfad "Pfad_1" sollte über eine Variable gehandelt werden.
Die Batch-Datei sollte Pausen mit Tastendruck enthalten.
Ich habe einige Vorschläge gelesen, habe aber Probleme mit dem Pfadhandling und
Ausgabe als file.
Vielleicht kann mir jemand bei der Lösung des Problems helfen.
Mfg Regenfrau
Ich möchte mit einer batch-Datei, die nicht unbedingt unter dem Pfad_1 abgespeichert ist das Änderungsdatum mit Änderungszeit auslesen ebenso die Zeit der Dateierstellung mit der
zugehörigen Zeit auslesen.
Die Ausgaben sollen logisch getrennt über echo in eine Datei im Pfad_1 ausgegeben werden.
Die Datei "Kbuch.xlms" könnte eine beliebige andere Datei sein.
Der Pfad "Pfad_1" sollte über eine Variable gehandelt werden.
Die Batch-Datei sollte Pausen mit Tastendruck enthalten.
Ich habe einige Vorschläge gelesen, habe aber Probleme mit dem Pfadhandling und
Ausgabe als file.
Vielleicht kann mir jemand bei der Lösung des Problems helfen.
Mfg Regenfrau
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43421089072
Url: https://administrator.de/contentid/43421089072
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
20 Kommentare
Neuester Kommentar
Moin.
Etwa so.
Gruß
Steffen
Etwa so.
@echo off &setlocal
set "filePath=X:\wo\auch\immer"
set "inFile=Kbuch.xlms"
set "outFile=dates.csv"
for /f "delims=." %%i in (
'wmic PATH CIM_DataFile WHERE "Name='%filePath:\=\\%\\%inFile%'" GET CreationDate^,LastModified /value'
) do for /f %%j in ("%%i") do set "%%j"
:: csv ist für mich "logisch getrennt", keine Ahnung ob dir was anderes vorschwebt...
>"%filePath%\%outFile%" (
echo type;year;month;day;hour;minute;second
echo CreationDate;%CreationDate:~0,4%;%CreationDate:~4,2%;%CreationDate:~6,2%;%CreationDate:~8,2%;%CreationDate:~10,2%;%CreationDate:~12,2%
echo LastModified;%LastModified:~0,4%;%LastModified:~4,2%;%LastModified:~6,2%;%LastModified:~8,2%;%LastModified:~10,2%;%LastModified:~12,2%
)
pause
Gruß
Steffen
Liebe Regenfrau.
Glaskugelmodus:
Grüße
Steffen
set "filePath=X:\wo\auch\immer"
Wenn du den Pfad nicht angepasst hast, dann kann das nicht funktionieren. Falls du ihn angepasst hast, dann liegt der Fehler sicherlich trotzdem da. Wenn du aber nicht schreibst, wie du ihn angepasst hast, kann ich kaum wissen wo der Fehler liegt. Oder wärst du dazu in der Lage, wenn du dich mal in die Lage der Leser deines Threads versetzt?Glaskugelmodus:
- Du hast deinen Pfad mit
/
statt\
getrennt. - Du hast einen
\
an das Ende deines Pfades gesetzt.
Grüße
Steffen
Problemlos nachgestellt:
Ergebnis:
¯\_(ツ)_/¯
Gruß
Steffen
@echo off &setlocal
set "filePath=D:\Hausbuero_neues\Aktuell_neues\Sicherung"
pause
set "inFile=Kontenbuch_Anwalt.xlms"
pause
set "outFile=dates.csv"
pause
for /f "delims=." %%i in (
'wmic PATH CIM_DataFile WHERE "Name='%filePath:\=\\%\\%inFile%'" GET CreationDate^,LastModified /value'
) do for /f %%j in ("%%i") do set "%%j"
:: csv ist für mich "logisch getrennt", keine Ahnung ob dir was anderes vorschwebt...
>"%filePath%\%outFile%" (
echo type;year;month;day;hour;minute;second
echo CreationDate;%CreationDate:~0,4%;%CreationDate:~4,2%;%CreationDate:~6,2%;%CreationDate:~8,2%;%CreationDate:~10,2%;%CreationDate:~12,2%
echo LastModified;%LastModified:~0,4%;%LastModified:~4,2%;%LastModified:~6,2%;%LastModified:~8,2%;%LastModified:~10,2%;%LastModified:~12,2%
)
pause
¯\_(ツ)_/¯
Gruß
Steffen
Moin.
Nimm einfach die PowerShell da ist das auch ein lächerlicher Einzeiler und auch lesbar... Wer eiert denn heutzutage für sowas noch mit Batch rum ?!
In ner Batch verwurstet geht natürlich auch ..
Gruß Strods
Nimm einfach die PowerShell da ist das auch ein lächerlicher Einzeiler und auch lesbar... Wer eiert denn heutzutage für sowas noch mit Batch rum ?!
Get-Item -LiteralPath "D:\Hausbuero_neues\Aktuell_neues\Sicherung\Kontenbuch_Anwalt.xlsm" | select LastWriteTime,CreationTime | export-csv -LiteralPath "D:\Hausbuero_neues\Aktuell_neues\Sicherung\dates.csv" -Delimiter ";" -NoType
@echo off
set "filepath=D:\Hausbuero_neues\Aktuell_neues\Sicherung"
set "infile=Kontenbuch_Anwalt.xlsm"
set "outfile=dates.csv"
powershell -EP Bypass -C "Get-Item -LiteralPath '%filepath%\%infile%' | select LastWriteTime,CreationTime | export-csv -LiteralPath '%filepath%\%outfile%' -Delimiter ';' -NoType"
Wohl ein Tippfehler deinerseits bei der Dateiendung 🫣, brauchsch a neis Nasefahrrad 🥸?
...
*.xlms statt richtig *.xlsm
RTFM
Executionpolicy
...
*.xlms statt richtig *.xlsm
Ich habe den ersten Text in ein textfile kopiert und mit der Endung ps1 versehen.
Nach dem Markieren habe ich "mit Powershell ausführen" geklickt.
Executionpolicy anpassen , oder alternative direkt ausführen mittels ...Nach dem Markieren habe ich "mit Powershell ausführen" geklickt.
powershell -EP Bypass -File "D:\script.ps1"
Executionpolicy
Zitat von @Regenfrau:
Wenn Du noch eine Lösung für die Powershell findest, würde es mich interessieren.
Da braucht's keine Lösung, funktioniert out of the box mit meinen Hinweisen oben 😉.Wenn Du noch eine Lösung für die Powershell findest, würde es mich interessieren.
Nun denn 🖖