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
GELÖST

Batch-Datei in unbestimmten Verzeichnis erstellen

Frage Entwicklung Batch & Shell

Mitglied: Cre4tin0

Cre4tin0 (Level 1) - Jetzt verbinden

26.07.2013 um 23:16 Uhr, 3210 Aufrufe, 2 Kommentare

Hallo zusammen
Da ich jetzt Einiges gelesen habe und zu dem Schluß gekommen bin, dass Ihr hier die Größten seid, habe ich mich mal hier angemeldet um Eure grauen Zellen mal zum Glühen zu bringen :D
Nein Spaß. Ich denke, so schwer wird das für Leute, die sich auskennen, nicht sein.

Hoffe, Ihr nehmt es mir nicht übel, wenn ich im Prinzip gar keine Ahnung habe und erst seit heute Mittag 12:00 Uhr erfahren habe, dass es "Batch-Dateien" gibt.

Ich war auf der Suche bei Google für WindowsVista einen ShortCut für einen "Neuen Ordner" zu finden. Ich kann mir zwar nicht vorstellen, dass es das nicht gibt, ich bin aber absolut nicht fündig geworden.
Im Zuge meiner kleinen Recheche bin ich dann auf Batch-Dateien gestoßen. Das ist wirklich eine super Sache auf den ersten Blick. Ich dachte mir, dass ich eine *.bat-Datei erstelle, auf die ich dann mit Hilfe von WinHotKey einen ShortCut legen kann. Hab da klassisch an "STRG + N" gedacht.
Habe auch erfahren, dass man theoretisch auch eine Verkünpfung der Datei erstellen könnte und darauf dann eine Tastenkombination festlegen könnte. Aber dabei ist mir das "ALT" bei "STRG + ALT + N" übel aufgestoßen. Deshalb das Tool dazu.

Okee, das ist die Vorgeschichte, weshalb ich um knapp 22:00 Uhr immer noch auf der Arbeit hänge :D Vor allem auf einem Freitag recht undankbar. Aber mich hat der Ehrgeiz gepackt, weil ich Holzkopf ja wohl nicht als Erster auf die Idee gekommen bin mit dem Neuen Ordner als ShortCut. Da werden sich ja wohl schon irgendwelche klugen Köpfe ausreichend Gedanken zu gemacht haben...

So, ich habe Folgendes herausgefunden:

:Datumsbestimmung
FOR /F "tokens=1-4 delims=/.- " %%A IN ("%date%") DO (SET TT=%%A&SET MM=%%B&SET JJJJ=%%C)

SET Datum=%JJJJ%-%MM%-%TT%


:Uhrzeitbestimmung
FOR /F "tokens=1-6 delims=:, " %%A IN ("%time%") DO (SET hh=%%A& SET mm=%%B& SET ss=%%C& SET ms=%%D)

SET Uhrzeit=%hh%~%mm%~%ss%


:Neuer Ordner
SET NeuerOrdner=%Datum%_%Uhrzeit%
md "[PFAD]\%NeuerOrdner%" 2>NUL

(http://forum.chip.de/programmierung-allgemein/batch-neuen-ordner-erstel ...; Wenn ich das hier so schreiben darf, ohne mir die Ungunst von Euch aufzuhalsen :D)


Das Ding funktioniert einwandfrei. Wäre schön, wenn die Datei nicht die Uhrzeit als Namen anzeigen würde, sondern sie direkt in diesem "Umbennen-Modus" erstellt werden würde. Aber das wäre eher die Kirsche auf der Torte, wenn jemand von euch diese Ungereimtheit nebenbei mit bearbeiten würde.
Was hierbei das Problem ist, ist, dass der Neue Ordner nur in dem Verzeichnis erstellt wird, in dem auch die Batch-Datei abgelegt ist.

Habe mir dazu natürlich auch was kleines, anfängerhaftes einfallen lassen, was aber natürlich das Problem nicht wirklich löst.
Ich hatte über die Funktion "Move" den Neuen Ordner (, der als "[PFAD]" erstellt wird, falls es jemand ausporbiert) direkt verschiebt, in ein vorher festgelegtes, neues Verzeichnis. Ich habe zum Probieren einen Ordner auf dem Desktop namens "Test" mit Unterordner "12345" erstellt, wodrin die Batch-Datei abgelegt ist. Es wird dann, soweit ich das beurteilen kann, der Ordner "[PFAD]" dort erstellt und direkt in den Ordner "Zielordner" (auch auf Desktop) verschoben. Aber denke, das wisst Ihr schon alles besser als ich, wenn Ihr auf dieses simple Programm einen Blick werft.
Die Eingabe sah dann am Ende so aus:

:Datumsbestimmung
FOR /F "tokens=1-4 delims=/.- " %%A IN ("%date%") DO (SET TT=%%A&SET MM=%%B&SET JJJJ=%%C)

SET Datum=%JJJJ%-%MM%-%TT%


:Uhrzeitbestimmung
FOR /F "tokens=1-6 delims=:, " %%A IN ("%time%") DO (SET hh=%%A& SET mm=%%B& SET ss=%%C& SET ms=%%D)

SET Uhrzeit=%hh%~%mm%~%ss%


:Neuer Ordner
SET NeuerOrdner=%Datum%_%Uhrzeit%
md "[PFAD]\%NeuerOrdner%" 2>NUL


Move c:\Desktop\Test\12345\[PFAD] c:\Desktop\Zielordner

Das funktioniert ebenfalls super, wenn ich in irgendwelchen völlig anderen Verzeichnissen aktiv bin und dann mein WinHotKey mit der Tastenkombination "STRG + N" bemühe. Es wird einwandfrei der Ordner "[PFAD]" im "Zielordner" erstellt.


So, und wer sich bis hierhin durchgekämpf hat, wird jetzt sicherlich nicht die Pointe verpassen wollen ;)
Der Punkt ist, dass ich einen Neuen Ordner ja nicht in einem vorgeschriebenen, festgelegten Verzeichnis erstellen möchte, sondern dieses Programm variabel anwendbar sein soll.
In dem Verzeichnis, in dem ich dann arbeite, also "das ich mit der Maus angeklickt habe", soll jetzt der Neue Ordner (in dem Fall "[PFAD]") verschoben werden.

Entweder soll sich dann die Batch-Datei immer diesen aktiven (,durch die Maus angeklickten,) Dateipfad auslesen, wenn ich "STRG + N" drücke (woran ich gedacht habe), oder Ihr wisst eine andere, viel bessere Lösung, von der ich wahrscheinlich gar keine Ahnung hab, dass es diese gibt.


So, jetzt ist aus "knapp 22:00 Uhr" schon viertel nach Elf geworden. Das war eine schwierige Geburt.

Wenn jetzt noch das, was ich rüberbringen wollte, halbwegs verständlich war, ist das bestimmt eine lösbare Aufgabe für Euch und ich würde mich sehr über Ideen und entsprechende Anweisungen freuen.
Vielen Dank im Voraus für Eure Mühen.

Schönen Abend


Cre4tin0

Mitglied: rubberman
27.07.2013, aktualisiert um 02:13 Uhr
Hallo Cre4tin0, willkommen im Forum.

Ich denke du hast da einen Denkfehler.
Stell dir vor du hast deinen Browser geöffnet und arbeitest nun mit dem Hotkey. Was soll nun passieren? Ein neues Verzeichnis im Browser ... ähm ... nee oder?
Das einzige was passiert ist, du startest deinen Batch. Der hat keine Ahnung davon, was das aktive Fenster ist und was dort gerade angezeigt wird. Und das ist auch gut so.

Möglich wäre ein neuer Kontextmenü-Eintrag für Verzeichnisse in der Registry. Dort gibt es den Parameter %V der das derzeitige Verzeichnis repräsentiert.
Also speichere fogenden Code als
C:\timestamp\timestamp.bat
01.
@echo off &setlocal 
02.
if "%~1"=="" goto :eof 
03.
for /f "tokens=1-6 delims=.,: " %%i in ("%date:* =% %time%") do ( 
04.
  if %%l lss 10 (md "%~1\%%k-%%j-%%i_0%%l~%%m~%%n") else md "%~1\%%k-%%j-%%i_%%l~%%m~%%n" 
05.
)
(Dabei gehe ich davon aus, dass Datum und Zeit den deutschen Einstellungen entspricht.)

Nun zum Registryeintrag. Speichere folgendes in einer *.reg Datei ab, führe sie aus und importiere so die Werte:
01.
Windows Registry Editor Version 5.00 
02.
 
03.
[HKEY_CLASSES_ROOT\Directory\Background\shell\Timestamp Folder\command] 
04.
@="\"C:\\timestamp\\timestamp.bat\" \"%V\""
Nun findest du den Menüpunkt Timestamp Folder bei Rechtsklick in ein Explorerfenster.
Da du mit Tastenkombinationen arbeiten willst, drücke [Shift]+[F10]+[T] (evtl. kann die letzte Taste bei dir eine andere sein).

Grüße
rubberman
Bitte warten ..
Mitglied: Cre4tin0
28.07.2013 um 00:42 Uhr
Hallo Rubberman,


den Denkfehler muss ich wirklich zugeben. Da haste mich erwischt :D

Egal, wichtiger ist, mich für deine schnelle Antwort zu bedanken.
Hab das natürlich auch direkt so gemacht, wie du es beschrieben hast. Hat auch gut geklappt. Die Funktion ist jetzt beim Rechtsklick im Explorer oder Desktop immer vorhanden. Das vereinfacht die Sache schon,obwohl "Rechtsklick -> Neu -> Neuer Ordner" auch nicht wirklich schwierig ist;)

Bei mir ist mit Inet im Moment bisschen kompliziert, deshalb auch die späte Reaktion meinerseits.


Ich lasse die Frage trotzdem nochmal ein paar Tage offen, dann drück ich den Hacken oben rechts ;)


Vielen Dank und liebe Grüße aus Chemnitz


Cre4tin0
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...