Button zum Automatischen erstellen von Ordnern?

German support forum

Moderators: sheep, Hacker, Stefan2, white

Post Reply
downunder888
Junior Member
Junior Member
Posts: 5
Joined: 2012-04-15, 13:59 UTC

Button zum Automatischen erstellen von Ordnern?

Post by *downunder888 » 2012-04-15, 15:14 UTC

Hallo an alle ich bin neu im Forum und habe natürlich gleich eine Frage.

Ich möchte einen Button in der Buttonbar erstellen, der einen Batch Befehl ausführt.
Bei APPS klappt das ja wunderbar.
Aber leider nicht bei dem Batch Befehl, den ich zum Automatischen erstellen von Ordnern nach einer Text Datei nutzen will.

Hier also die Daten:
Der Batch Befehl lautet:

Code: Select all

chcp 1252
for /f "delims=" %%i in (Test.TXT) do @md "%%i"

Der Inhalt Text Datei (Test.TXT) ist:

Code: Select all

Dirä
Dirö
Dirü
Dir1
Dir2
Dir3
Dir4
Dir5

Wie Ihr sehen könnt, schalte ich den Zeichensatz auf 1252 um ob das unter TC nötig ist weiß ich leider nicht.
In der zweiten Zeile sollte das (Test.TXT) möglichst durch die angewählte Text Datei im Quell Fenster von TC ersetzt werden der Befehl ist glaube ich (?%P%N).

Ich habe versucht die Befehle in der Buttonbar bei Kommando und Parameter auf unterschiedliche weise einzugeben, aber es blitzt höchstens ein DOS-Fenster auf und nichts passiert.

XMD habe ich schon ausprobiert aber der Batch Befehl gefällt mir besser.

Bei der suche im Netz und im Forum habe ich leider nichts gefunden und nach drei Tagen gebe ich auf.

Ich hoffe Ihr könnt mir Helfen.


Noch einen schönen Sonntag.
downunder888
Last edited by downunder888 on 2012-04-15, 18:04 UTC, edited 1 time in total.

User avatar
Dalai
Power Member
Power Member
Posts: 6755
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai » 2012-04-15, 15:21 UTC

Schreib die Befehle in eine Batchdatei und rufe diese mit dem Button auf. Alles andere ist komplizierter, denn auch wenn es möglich ist, Batchbefehle auf einen Button zu legen, so lohnt sich das sehr oft nur bei einzelnen Befehlen und die Syntax wird auch nicht unbedingt einfacher.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

downunder888
Junior Member
Junior Member
Posts: 5
Joined: 2012-04-15, 13:59 UTC

Post by *downunder888 » 2012-04-15, 15:26 UTC

Hallo Dalai

Danke für Deine schnelle Antwort.

Aber so wie Du es vorschlägst, mache ich es schon und das wollte ich ändern.

User avatar
Dalai
Power Member
Power Member
Posts: 6755
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai » 2012-04-15, 15:37 UTC

Keine Ahnung, ob dir das was nützt, aber
  • TC kann mehrere Verzeichnisse gleichzeitig anlegen. Das geht mit der Syntax

    Code: Select all

    dir1|dir2|dir3|dir4
  • Dieses Tool ist ebenfalls für solche Fälle gedacht, kann aber noch wesentlich mehr.
Wenn das nicht auf deinen Fall anwendbar ist, dann versuch mal folgende Syntax:

Code: Select all

chcp 1252 & for /f "delims=" %i in (Test.TXT) do @md "%i"
Ich weiß nicht, ob die Prozentzeichen einfach oder doppelt angegeben werden müssen, denn benutzt man sie auf der CMD, dürfen sie nur einfach sein; nutzt man sie in einer Batchdatei, müssen sie verdoppelt werden. Die TC-Syntax eines Buttons gibt aber an, dass %% nur ein Prozentzeichen ergibt. Am besten, du probierst es aus.

Davon abgesehen ist der Befehl aber noch verbesserungsfähig, denn "test.txt" könnte dynamisch sein.

Besser wäre es also vielleicht sogar so:

Code: Select all

TOTALCMD#BAR#DATA
cmd.exe
/k chcp 1252 & for /f "delims=" %%i in (Test.TXT) do @md "%%i"
shell32.dll


0
-1
Icon darfst du dir selber aussuchen, und auf eine dynamische Textdatei hab ich auch erstmal verzichtet ;).

Noch eine Ergänzung: Wenn der Button wie gewünscht funktioniert, kannst du den Parameter /k in /c ändern, der die Konsole automatisch nach Ausführung schließt.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

downunder888
Junior Member
Junior Member
Posts: 5
Joined: 2012-04-15, 13:59 UTC

Post by *downunder888 » 2012-04-15, 16:23 UTC

Klasse Dalai

das ist jetzt genau so wie mit meiner Batch Datei.
Aber Du hast es jetzt direkt in die Buttonbar geschrieben.


Kommando: und Parameter:

Code: Select all

cmd.exe
/k chcp 1252 & for /f "delims=" %%i in (%P%N) do @md "%%i"
Der einzige Nachteil der Pfad für die Text Datei darf keine Leerzeichen enthalten und eine Abfrage mit (?) ist auch nicht möglich.

Aber schon viel besser Danke

User avatar
Dalai
Power Member
Power Member
Posts: 6755
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai » 2012-04-15, 16:31 UTC

downunder888 wrote:Aber Du hast es jetzt direkt in die Buttonbar geschrieben.
Das wolltest du doch?! Ich habe dich so verstanden, dass du dir die Batchdatei sparen willst. Daraus folgt, dass alle Befehle in den Button (oder Startermenü) müssen.
Der einzige Nachteil der Pfad für die Text Datei darf keine Leerzeichen enthalten
Das lässt sich durch Umarbeiten lösen:

Code: Select all

TOTALCMD#BAR#DATA
cmd.exe
?/k chcp 1252 & for /f "delims=" %%i in ('type %P%N') do @echo "%%i"
shell32.dll



-1
Anführungszeichen setzt der TC automatisch, wenn erforderlich. Und dies
und eine Abfrage mit (?) ist auch nicht möglich.
ist auch gleich mit enthalten. Oder meinst du, dass im entsprechenden Dialog nur der Dateiname steht bzw. abgefragt wird? Dann kommst du nicht um eine Batchdatei herum.

[Ergänzung] Ohne Benutzung des Befehls type (kostet Laufzeit) geht es auch:

Code: Select all

TOTALCMD#BAR#DATA
cmd.exe
?/k chcp 1252 & for /f "usebackq delims=" %%i in (%P%N) do @echo "%%i"
shell32.dll



-1
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

downunder888
Junior Member
Junior Member
Posts: 5
Joined: 2012-04-15, 13:59 UTC

Post by *downunder888 » 2012-04-15, 17:59 UTC

Hallo Dalai das „aber“ war Positive gemeint genau so wollte ich das.

Die Abfrage mit dem (?) habe ich genau so gemeint.
Als zusätzliche Sicherheit im Eifer des Gefechts.

Leider habe ich ein Haar in der Suppe entdeckt.

Der Befehl für den Zeichensatz wird nicht übernommen.
Ist mir erst jetzt aufgefallen die Umlaute sind.

Sieh selbst:

Code: Select all

Dir▀\
Dir1\
Dir2\
Dir3\
Dir4\
Dir5\
Dir÷\
Dir³\
Dirõ\
Und sollten so aussehen:

Code: Select all

Dir1\
Dir2\
Dir3\
Dir4\
Dir5\
Dirä\
Dirö\
Dirß\
Dirü\
Ich hatte das mit einer anderen Text Datei getestet, da wahren die Umlaute in den Zeilen versteckt.
Oh je.

Hast Du da vielleicht auch eine Idee.

User avatar
Dalai
Power Member
Power Member
Posts: 6755
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai » 2012-04-15, 18:58 UTC

Ich hab gerade etwas rumprobiert (mit Subshell, anderem Zeichensatz), aber es ist mir nicht gelungen, das Teil zum Funktionieren zu bringen. Verstehen tue ich das nicht. Dir bleiben 2 Möglichkeiten: bei der Batchdatei bleiben oder Textdatei in ASCII kodieren, wobei letzteres nicht gerade sinnvoll ist ;).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

downunder888
Junior Member
Junior Member
Posts: 5
Joined: 2012-04-15, 13:59 UTC

Post by *downunder888 » 2012-04-16, 14:01 UTC

Schade da werde ich wohl bei der Batch Datei bleiben müssen.

Noch mal vielen Dank für Deine Mühen.

downunder888

Post Reply