automatisch Datei erstellen über Button Bar
Moderators: Hacker, Stefan2, white
automatisch Datei erstellen über Button Bar
Hi,
Ich würde gerne eine einen Knopf in meiner Button Bar erstellen, der mir eine Datei mit dem Datum und einer bestimmten Endung im Notepad++ erstellt.
Ich bin schon so weit, dass ich eine Datei erstellen kann bei der die Dateiendung vorgegeben ist.
Nur das mit dem Datum bekomm ich nicht hin!
Ich will dass beim Erstellen dort schon das aktuelle Datum und eventuell die Uhrzeit vor der Dateiendung steht.
IN den Parameter Variablen des TTC gibt finde ich allerdings kein Datum!
Geht das mit dem TTC überhaupt??
Ich würde gerne eine einen Knopf in meiner Button Bar erstellen, der mir eine Datei mit dem Datum und einer bestimmten Endung im Notepad++ erstellt.
Ich bin schon so weit, dass ich eine Datei erstellen kann bei der die Dateiendung vorgegeben ist.
Nur das mit dem Datum bekomm ich nicht hin!
Ich will dass beim Erstellen dort schon das aktuelle Datum und eventuell die Uhrzeit vor der Dateiendung steht.
IN den Parameter Variablen des TTC gibt finde ich allerdings kein Datum!
Geht das mit dem TTC überhaupt??
lg
Paul Belcl
Paul Belcl
Nein, nicht direkt. Umweg über eine Batch-Datei geht jedoch immer. Dort existieren die Umgebungsvariablen %date% und %time%, deren Ausgabeformat allerdings von den aktuellen Windowssystemeinstellungen abhängig sein.Geht das mit dem TTC überhaupt??
Beispiel:
Code: Select all
echo %date:~-2,2%%date:~3,2%%date:~0,2%
Beispiel für einen Button
Code: Select all
TOTALCMD#BAR#DATA
%comspec% /kecho .> %date:~-2,2%%date:~3,2%%date:~0,2%.txt
totalcmd.exe,21
Textdatei mit Datum erstellen.
.
-1
"War is evil, in so far as it makes more bad people than it takes away."
Immanuel Kant in "Perpetual Peace"
Immanuel Kant in "Perpetual Peace"
Das geht mit Hilfe von Nircmd
Zum Beispiel:
Anstelle Notepad.exe den Pfad zu deinem Editor
und die passende Variable als Parameter aus der Hilfe von Nircmd
Zum Beispiel:
Code: Select all
TOTALCMD#BAR#DATA
C:\Tools\NirSoft\x64\nircmd.exe
exec show "notepad.exe" ~$currdate.MM_dd_yyyy$.txt
%COMMANDER_PATH%\TOTALCMD64.EXE,3
nircmd
-1
und die passende Variable als Parameter aus der Hilfe von Nircmd
Windows 11 Home x64 Version 23H2 (OS Build 22631.3737)
TC 11.03 x64 / x86
Everything 1.5.0.1383a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.78
QAP 11.6.3.3 x64
TC 11.03 x64 / x86
Everything 1.5.0.1383a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.78
QAP 11.6.3.3 x64
Danke für eure Tipps!
Danke für eure Tipps!
Ich bin allerdings mit der Umsetzung etwas überfordert, weil ich bisher die ButtonBar immer über die GUI verwaltet habe.
Dachte das geht etwas einfacher ohne zusätzliche Tools
Ich bin allerdings mit der Umsetzung etwas überfordert, weil ich bisher die ButtonBar immer über die GUI verwaltet habe.
Dachte das geht etwas einfacher ohne zusätzliche Tools
lg
Paul Belcl
Paul Belcl
Re: Danke für eure Tipps!
Mein Beispiel im Code oben kannst du einfach kopierenpbelcl wrote:Danke für eure Tipps!
Ich bin allerdings mit der Umsetzung etwas überfordert, weil ich bisher die ButtonBar immer über die GUI verwaltet habe.
Dachte das geht etwas einfacher ohne zusätzliche Tools
und auf der Buttonbar im TC per rechter Maustaste einfügen.
Dann bekommst du einen entsprechenden Button,
den du dann mit dem GUI ändern kannst.
Logischerweise musst du die Pfade anpassen und NirCmd downloaden.
Windows 11 Home x64 Version 23H2 (OS Build 22631.3737)
TC 11.03 x64 / x86
Everything 1.5.0.1383a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.78
QAP 11.6.3.3 x64
TC 11.03 x64 / x86
Everything 1.5.0.1383a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.78
QAP 11.6.3.3 x64
Danke Horst.Epp!
Ich wollte zwar anfangs kein externes Tool für diese Lösung verwenden, aber mit nircmd.exe klappt es gut!
Habe deine Befehlszeile etwas angepasst:
Leider funktioniert :
NICHT, somit ist das Ganze noch nicht wirklich portable, was mir sehr wichtig ist!!
Hast du dafür auch noch einen Tipp?
Und noch eine Frage:
Kann man die Bestätigung, dass die Datei noch nicht existiert, eventuell auch irgendwie umgehen. Soll einfach nur ohne Fragen erstellt werden!
Ich wollte zwar anfangs kein externes Tool für diese Lösung verwenden, aber mit nircmd.exe klappt es gut!
Habe deine Befehlszeile etwas angepasst:
Code: Select all
exec show "c:\Progs\totalcmd\Tools\Notepad++\notepad++.exe" ~$currdate.yyyy-MM-dd$.lua
Code: Select all
exec show "%COMMANDER_PATH%\Tools\Notepad++\notepad++.exe" ~$currdate.yyyy-MM-dd$.lua
Hast du dafür auch noch einen Tipp?
Und noch eine Frage:
Kann man die Bestätigung, dass die Datei noch nicht existiert, eventuell auch irgendwie umgehen. Soll einfach nur ohne Fragen erstellt werden!
lg
Paul Belcl
Paul Belcl
Beispiel von Norfie
Hallo Norfie2
Hab mir gerade auch dein Beispiel angesehen, weil ich eigentlich lieber ohne Zusatztools arbeite!
Wenn ich den Befehle :
Unter Kommando eingebe wird das File zwar erstellt, aber es bleibt die DOS Box im Hintergrund offen!
Kann man die irgendwie automatisch schliessen?
Hast du vielleicht auch noch einen Tipp wie ich in die Befehlszeile die Uhrzeit dazubekomme?
Am Besten im Format "hhmmss", das wär supernett, ich bin in Dos Batch nicht so der Profi
Hab mir gerade auch dein Beispiel angesehen, weil ich eigentlich lieber ohne Zusatztools arbeite!
Wenn ich den Befehle :
Code: Select all
%comspec% /kecho .> %date:~-2,2%%date:~3,2%%date:~0,2%.lua
Kann man die irgendwie automatisch schliessen?
Hast du vielleicht auch noch einen Tipp wie ich in die Befehlszeile die Uhrzeit dazubekomme?
Am Besten im Format "hhmmss", das wär supernett, ich bin in Dos Batch nicht so der Profi
lg
Paul Belcl
Paul Belcl
- sqa_wizard
- Power Member
- Posts: 3869
- Joined: 2003-02-06, 11:41 UTC
- Location: Germany
pbelcl: nimm statt /kecho einfach /cecho also
Code: Select all
%comspec% /cecho .> %date:~-2,2%%date:~3,2%%date:~0,2%.lua
#5767 Personal license
Hallo /Cecho hat geklappt, danke!
Jetzt muss ich mich nur noch mit der Uhrzeit spielen
Jetzt muss ich mich nur noch mit der Uhrzeit spielen
lg
Paul Belcl
Paul Belcl
2pbelcl
Wie soll die Uhrzeit ausschauen? Mit Sekunden?
Vorschlag:
Hat leider (bei mir) den Nachteil, dass von 0 bis 9 Uhr ein Leerzeichen im Dateinamen enthalten ist.
Beispiel für Batchlösungen
Wie soll die Uhrzeit ausschauen? Mit Sekunden?
Vorschlag:
Code: Select all
%comspec% /cecho .> "%date:~-2,2%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.lua"
Beispiel für Batchlösungen
"War is evil, in so far as it makes more bad people than it takes away."
Immanuel Kant in "Perpetual Peace"
Immanuel Kant in "Perpetual Peace"
Danke norfie², für deine Geduld!!
Dass bei der Zeit von 0-9 ein Leerzeichen ist, passt perfekt, dann sehen die Dateien optisch im Filemanager gleich aus
Das Format welches ich brauche habe ich mit etwas probieren schon hingekriegt!
Gibt es die Möglichkeit die erstellte Datei danach gleich mit dem Notepad++ zu öffnen?
Dass bei der Zeit von 0-9 ein Leerzeichen ist, passt perfekt, dann sehen die Dateien optisch im Filemanager gleich aus
Das Format welches ich brauche habe ich mit etwas probieren schon hingekriegt!
Code: Select all
%comspec% /cecho .> "%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.lua"
Gibt es die Möglichkeit die erstellte Datei danach gleich mit dem Notepad++ zu öffnen?
lg
Paul Belcl
Paul Belcl
Um die führende Null zu erhalten, musst du etwas mehr Code einsetzen.
-oder-
Hier ein kompletes Batchskript:
- - -
Oder WMI verwenden, da ist die führende Null gleich enthalten:
- - -
Oder als VBScript
TimeStamp FormatDate filename Test.vbs
Oder Powershell
Noch mehr Beispiel und Tipps zur Dateierstellung und öffnen in einem Editor finden sich in den Tiefen des Forums.
zB auch mit Verwendung von Templates, zB um gleich Unicode-, oder vorbefüllte Dateien zu erstellen.
Code: Select all
C:\Windows\SysWOW64>echo %time:~0,2%
8
C:\Windows\SysWOW64>SET T=%time:~0,2%
C:\Windows\SysWOW64>ECHO %T%
8
C:\Windows\SysWOW64>SET T=%T: =%
C:\Windows\SysWOW64>ECHO %T%
8
C:\Windows\SysWOW64>IF %T% LSS 10 SET T=0%T%
C:\Windows\SysWOW64>ECHO %T%
08
-oder-
Code: Select all
C:\Windows\SysWOW64>SET T=%time:~0,2%
C:\Windows\SysWOW64>ECHO %T%
8
C:\Windows\SysWOW64>SET T=0000%T: =%
C:\Windows\SysWOW64>ECHO %T%
00008
C:\Windows\SysWOW64>SET T=%T:~-2%
C:\Windows\SysWOW64>ECHO %T%
08
Code: Select all
@ECHO OFF
for /f "tokens=3 skip=1" %%A in ('REG QUERY "HKCU\Control Panel\International" /v Locale ') DO @SET Loc=%%A
if %Loc%==00000409 SET Loc=ENG
if %Loc%==00000407 SET Loc=DEU
GoTo _%Loc%
:_ENG
REM echo %date% --- %time% >>> Thu 10/10/2013 --- 16:12:42.46
SET D=0%date:~7,2%
SET M=0%date:~4,2%
SET Y=%date:~12,2%
GoTo _common
:_DEU
REM echo %date% --- %time% >>> 10.10.2013 --- 16:28:54,02
SET D=0%date:~0,2%
SET M=0%date:~3,2%
SET Y=%date:~8,2%
SET Y=%date:~6,4%
GoTo _common
:_common
SET D=%D: =%
SET D=%D:~-2%
SET M=%M: =%
SET M=%M:~-2%
SET H=0%time:~0,2%
SET H=%H: =%
SET H=%H:~-2%
SET N=0%time:~3,2%
SET N=%N: =%
SET N=%N:~-2%
SET S=%time:~6,2%
REM
SET timestamp=%Y%.%M%.%D%_%H%%N%%S%
GoTo _WORK
:_WORK
ECHO %Loc% timestamp: %timestamp%
ECHO do your work here....
PAUSE
- - -
Oder WMI verwenden, da ist die führende Null gleich enthalten:
Code: Select all
REM http://ss64.com/nt/syntax-stampme.html
:: Get the date/time
FOR /f %%a in ('WMIC OS GET LocalDateTime ^| find "."') DO Set _DTS=%%a
Set _datetime=%_DTS:~0,4%-%_DTS:~4,2%-%_DTS:~6,2%@%_DTS:~8,2%-%_DTS:~10,2%-%_DTS:~12,2%
REM 2016-02-29@13-45-37
ECHO %_datetime%
Set _datetime=%_DTS:~0,4%-%_DTS:~4,2%-%_DTS:~6,2%_%_DTS:~8,2%%_DTS:~10,2%%_DTS:~12,2%
REM 2016-02-29_134537
Echo %_datetime%
PAUSE
- - -
Oder als VBScript
TimeStamp FormatDate filename Test.vbs
Code: Select all
N = Now
W = WeekdayName( Weekday(N), true)
D = Year(N) & Right("00" & Month(N), 2) & Right("00" & Day(N), 2)
D2 = Year(N) &"-"& Right("00" & Month(N), 2) &"-"& Right("00" & Day(N), 2)
T = Right("00" & Hour(N), 2) & Right("00" & Minute(N), 2) & Right("00" & Second(N), 2)
msgbox D
'//20130620
msgbox D2
'//2013-06-20
msgbox D & "_" & T
'//20130620_082202
msgbox D & "_" & W & "_" &T
'//20130620_Do_083851
Oder Powershell
Code: Select all
$TimeStamp = "{0:yyyy}-{0:MM}-{0:dd}-{0:HHmmss}" -f (Get-Date) #Erg.: 2014-09-26-155050
$TimeStamp = Get-Date -Format "yyyy-MM-dd-HHmmss" #Erg.: 2014-09-26-155050
Noch mehr Beispiel und Tipps zur Dateierstellung und öffnen in einem Editor finden sich in den Tiefen des Forums.
zB auch mit Verwendung von Templates, zB um gleich Unicode-, oder vorbefüllte Dateien zu erstellen.
Batch: Erstelle txt Datei mit aktuellem Timestamp
Ich würde da eine Batchdatei (DOS/VBS/AHK/PoSh/...) erstellen und diese über den TC-Button aufrufen.pbelcl wrote: Gibt es die Möglichkeit die erstellte Datei danach gleich mit dem Notepad++ zu öffnen?
In solch einer Batchdatei hat man bessere Übersicht und mehr Möglichkeiten und erspart sich das escapen von Sonderzeichen im TC-Button.
Das funktioniert zB in der DOS-Box gut, aber muss zum Einsatz im Button noch umgebaut werden:
SET F="%date:~-2,2%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.lua"&&nulll>>%F%&"%Commander_Path%\TOOLs\Notepad++\notepad++.exe" %F%
- - -
zB
TC-Button:
Kommando: %comspec% /c
Parameter: X:\Totalcmd\MeineTools\TC-Button - Erstelle Datei mit Timestamp.cmd
-oder mehr "portable":
Kommando: %comspec% /c
Parameter: ""%%COMMANDER_PATH%%\MeineTools\TC-Button - Erstelle Datei mit Timestamp.cmd"
(zum debuggen %comspec% /k verwenden)
Die Batch:
Code: Select all
@ECHO OFF
REM TC-Button - Erstelle Datei mit Timestamp.cmd
REM Freitag, 1. September 2017
REM Gefunden: https://ghisler.ch/board/viewtopic.php?p=331471#331471
REM Erstelle eine plain-txt Datei mit aktuellem Timestamp im aktiven TC-Panel
REM Alternative 1: Original DOS DATE/TIME mit fehlender führender Null:
REM SET _datetime="%date:~-2,2%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%"
REM Alternative 2: WMI date/time inklusive führender Null:
FOR /f %%a in ('WMIC OS GET LocalDateTime ^| find "."') DO Set _DTS=%%a
Set _datetime=%_DTS:~2,2%%_DTS:~4,2%%_DTS:~6,2%_%_DTS:~8,2%%_DTS:~10,2%%_DTS:~12,2%
REM 160229_134537
Echo %_datetime%
REM Kompletter Dateiname:
SET "MyFile=%_datetime%.lua"
ECHO %MyFile%
REM Erstelle Datei und unterdrücke die Fehlermeldung:
nulll>%MyFile% 2>NUL
REM Der Befehl "nulll" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
REM Starte einen Texteditor mit dieser neuen Datei:
REM START "" notepad %MyFile%
START "" "%Commander_Path%\TOOLs\Notepad++\notepad++.exe" %MyFile%
REM Fertig:
REM PAUSE
GOTO :EOF
Mein TC Button
-----------------------------------
TOTALCMD#BAR#DATA
%comspec% /c
""%%COMMANDER_PATH%%\TOOLs\CMDs\TC-Button - Erstelle Datei mit Timestamp.cmd""
C:\windows\System32\imageres.dll,122
Button - Erstelle Datei mit Timestamp
1
-1
-----------------------------------
:EOF
2pbelcl
Probiere es bitte mal damit:Gibt es die Möglichkeit die erstellte Datei danach gleich mit dem Notepad++ zu öffnen?
Code: Select all
TOTALCMD#BAR#DATA
%comspec% /ccopy nul "%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.lua"
&& START "" "%COMMANDER_PATH%\Tools\Notepad++\notepad++.exe" "%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.lua"
totalcmd.exe,21
Textdatei mit Datum erstellen.
.
-1
Last edited by norfie² on 2017-09-01, 09:05 UTC, edited 1 time in total.
"War is evil, in so far as it makes more bad people than it takes away."
Immanuel Kant in "Perpetual Peace"
Immanuel Kant in "Perpetual Peace"