Kommentar für mehrere Dateien
Moderators: Hacker, Stefan2, white
Leerzeichen? Welche Leerzeichen?
Leerzeichen würden hier nirgends stören.
Noch nicht einmal im %COMMANDER_PATH%
Ohhh, doch bei temp, wenn man ein Leerzeichen im Namen hat.
Set ListFile="%tmp%\File with Collection.txt"
Dann muss man wohl auch
type "%1"
schreiben?
Kann das mal bitte jemand aufklären? (würde mir nie einfallen ein Lerrzeichen im Benutzernamen zu haben...)
Ich habe zB "C:\Users\UserName\AppData\Local\Temp\CMD6B0D.tmp",
wie sieht das bei "C:\Users\User Name\AppData\Local\Temp\CMD6B0D.tmp" aus?
Wie auch immer,... "" stören ja nicht,... ich füge die noch oben ein.
Edit: ich habe auch noch das "%L" in quotes gesetzt,
da ja in diesem Pfad ebenfalls das Leerzeichen stecken würde:
"C:\Users\User Name\AppData\Local\Temp\CMD6B0D.tmp"
BTW: wenn das DOS-Fenster stört, wählt im Button-Einstellungsdialog "[X] Minimiert"
Daher habe ich eine "1" für "minimiert" dem Button hinzugefügt.
Daher ist das jetzt wohl hinfällig?:
Und %L sowie %F funktionieren beide.
Anscheinend wurden die einzelnen Felder im Button falsch ausgefüllt?
@Kerstin, poste mal deinen Button:
- rechter Mausklick auf den Button
- auf "Kopieren" klicken
- hier im Forum "Einfügen"
.
Leerzeichen würden hier nirgends stören.
Noch nicht einmal im %COMMANDER_PATH%
Ohhh, doch bei temp, wenn man ein Leerzeichen im Namen hat.
Set ListFile="%tmp%\File with Collection.txt"
Dann muss man wohl auch
type "%1"
schreiben?
Kann das mal bitte jemand aufklären? (würde mir nie einfallen ein Lerrzeichen im Benutzernamen zu haben...)
Ich habe zB "C:\Users\UserName\AppData\Local\Temp\CMD6B0D.tmp",
wie sieht das bei "C:\Users\User Name\AppData\Local\Temp\CMD6B0D.tmp" aus?
Wie auch immer,... "" stören ja nicht,... ich füge die noch oben ein.
Edit: ich habe auch noch das "%L" in quotes gesetzt,
da ja in diesem Pfad ebenfalls das Leerzeichen stecken würde:
"C:\Users\User Name\AppData\Local\Temp\CMD6B0D.tmp"
BTW: wenn das DOS-Fenster stört, wählt im Button-Einstellungsdialog "[X] Minimiert"
Daher habe ich eine "1" für "minimiert" dem Button hinzugefügt.
Daher ist das jetzt wohl hinfällig?:
Und %L sowie %F funktionieren beide.
Anscheinend wurden die einzelnen Felder im Button falsch ausgefüllt?
@Kerstin, poste mal deinen Button:
- rechter Mausklick auf den Button
- auf "Kopieren" klicken
- hier im Forum "Einfügen"
.
Leerzeichen in Dateinamen/Pfaden stören immer die gewünschte Funktion einer Batch, deswegen muss man ja Anführungszeichen benutzen. Auch wenn keine Anführungszeichen nötig sind, weil keine Leerzeichen im Pfad sind - schaden tun sie nicht, daher lieber welche "zuviel" setzen.Stefan2 wrote:Leerzeichen? Welche Leerzeichen?
Leerzeichen würden hier nirgends stören.
Berücksichtigst du bitte auch, dass unter XP die Pfade völlig anders sind? Da is nix mit "C:\Users\blah\blub" sondern "%SystemDrive%\Dokumente und Einstellungen\blah\blub" (auf einem deutschen Win2k/XP), also so richtig schön mit Leerzeichen im Pfad, auch ohne deren Auftauchen im Benutzernamen.Ohhh, doch bei temp, wenn man ein Leerzeichen im Namen hat.
Nein, das ist die falsche Stelle. Anführungszeichen benutzt man in Batch niemals beim Setzen einer Umgebungsvariable. Dummerweise gibt's davon ein paar Ausnahmen, aber die spielen hier keine Rolle. Der Hintergrund ist, dass man auch sowas haben kann:Set ListFile="%tmp%\File with Collection.txt"
Code: Select all
REM Variante 1
set file="%temp%\blah mit leerzeichen\blubber mit leerzeichen"
set pfad=C:\zusatz
"%pfad%\%file%"
REM --------------------
REM Variante 2
set file=%temp%\blah mit leerzeichen\blubber mit leerzeichen
set pfad=C:\zusatz
"%pfad%\%file%"
Ja!Dann muss man wohl auch
type "%1"
schreiben?
Korrekt ist die Batch also wie folgt:
Code: Select all
@echo off
REM File to collect all selected files
REM Datei zum Sammeln aller selectierten Dateien
Set ListFile=%tmp%\FileCollection.txt
REM Type the content from the file, that TC parameter %L creates, into our list file
REM Schreibe den Inhalt der Datei, die der TC Parameter %L erzeugt, in unsere Sammeldatei
type "%1" >> "%ListFile%"
REM Show our list file (you may want to delete that line and open the file yourself once you are done)
REM Zeige uns unsere Sammeldatei (du kannst diese Zeile löschen und die Datei selbst öffnen, nachdem du fertig bist)
notepad "%ListFile%"
Da weiß ich nicht genau, ob das nötig ist, weil TC vielleicht selbständig welche setzt. Aber ich glaub, das war nur bei der Kombination von %P%N und sonst nicht; daher kann's wohl nicht schaden.Edit: ich habe auch noch das "%L" in quotes gesetzt,
da ja in diesem Pfad ebenfalls das Leerzeichen stecken würde:
"C:\Users\User Name\AppData\Local\Temp\CMD6B0D.tmp"
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
so, ich habe genau das von Dalai geänderte Script probiert. Leider wird immer noch das Totalcommander Verzeichnis ausgelesen. Dazu noch irgendwelche Sachen irgendwo auf C:/. Kann da kein System erkennen.
Aber jetzt kommt eine Fehlermeldung im Dos-Fenster:
Liebe Grüße
Kerstin

Aber jetzt kommt eine Fehlermeldung im Dos-Fenster:
Was kann das denn sein?Das System kann den angegebenen Pfad nicht finden
Liebe Grüße
Kerstin


Ich hasse Leute, die Sätze nicht zuende
Ich muss mich korrigieren, ich hatte wegen der vielen Versuche den Parameter %L vergessen.
Mit Parameter ist es allerdings nicht besser. Es kommt die Fehlermeldung zwar nicht mehr, aber die ausgegebene Dateiliste ist die gleiche (Totalcommander-Pfad und weiteres) *heul*
Liebe Grüße
Kerstin
Mit Parameter ist es allerdings nicht besser. Es kommt die Fehlermeldung zwar nicht mehr, aber die ausgegebene Dateiliste ist die gleiche (Totalcommander-Pfad und weiteres) *heul*

Liebe Grüße
Kerstin

Ich hasse Leute, die Sätze nicht zuende
Hast du Anführungszeichen um %L?
MfG Dalai
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Bei mir unter XP: ja, einwandfrei.Kerstin83 wrote:Funktioniert das Script bei euch denn?
Ich hab das von mir korrigierte Skript benutzt, unter C:\CollectFiles.cmd abgelegt, dann irgendwelche Dateien markiert und anschließend diesen Button erzeugt & benutzt:
Code: Select all
TOTALCMD#BAR#DATA
c:\CollectFiles.cmd
"%L"
D:\WINDOWS\System32\shell32.dll,-153
CollectFiles
-1
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Kann es sein, dass du einem Irrtum unterliegst? Das Skript schreibt nicht bei jedem Aufruf die Liste der selektierten Dateien komplett neu, sondern hängt diese an die bereits bestehende Datei/Liste an. Sofern du die Datei/Liste also nicht leerst/löscht/kürzt, wirst du immer wieder dieselbe Liste bekommen, nur ergänzt um die nun selektierten Dateien.
MfG Dalai
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Jein. Die Zeile mit diesem Pfad gibt lediglich das Symbol/Icon des Buttons an. Wird das Icon nicht gefunden, zeigt TC kein Symbol für diesen Button an, der Button existiert und funktioniert aber trotzdem.tuska wrote:Im Button von Dalai wird "D:\WINDOWS\System32..." - Laufwerk D: angegeben. Kann es sein, dass hier auf Laufwerk C: angepaßt werden muß?
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ohh, ihr wart ja fleißig.
Dalai > Leerzeichen in Dateinamen/Pfaden stören immer
Schon klar, nur hatte ich da zuerst keine Leerzeichen gesehen.
Dalai > Berücksichtigst du bitte auch, dass unter XP die Pfade völlig anders sind?
Upps, Stimmt ja. Hatte ich bereits erfolgreich verdrängt.
Dalai > Anführungszeichen benutzt man in Batch niemals beim Setzen einer Umgebungsvariable.
Das kann ich so nicht unterstreichen.
Es mach sehr wohl Sinn, die Anführungszeichen gleich beim Setzen einer Umgebungsvariable anzugeben.
Dadurch braucht man das nur an einer Stelle zu tun.
Wenn man natürlich so was konstruiert wie in deinem Beispiel, muss man aufpassen was man macht.
Dalai > Leerzeichen in Dateinamen/Pfaden stören immer
Schon klar, nur hatte ich da zuerst keine Leerzeichen gesehen.
Dalai > Berücksichtigst du bitte auch, dass unter XP die Pfade völlig anders sind?
Upps, Stimmt ja. Hatte ich bereits erfolgreich verdrängt.
Dalai > Anführungszeichen benutzt man in Batch niemals beim Setzen einer Umgebungsvariable.
Das kann ich so nicht unterstreichen.
Es mach sehr wohl Sinn, die Anführungszeichen gleich beim Setzen einer Umgebungsvariable anzugeben.
Dadurch braucht man das nur an einer Stelle zu tun.
Wenn man natürlich so was konstruiert wie in deinem Beispiel, muss man aufpassen was man macht.
Kann es sein, dass du einem Irrtum unterliegst?

Funktioniert jetzt. Danke. Das erklärt auch die völlig willkürliche Liste.
Und das %F geht auch.

Allerdings stört das schon ein bisschen. Kann man die Liste vorher irgendwie clearen?
Und als Speicherpfad wäre das aktuelle Verzeichnis super. Müsste ich dann nicht immer suchen...
@Stefan:
wo ist dieser code für die Buttons eigentlich. Eine usercmd.ini habe auf dem gesamten Laufwerk nicht gefunden.
Viele Grüße
Kerstin


Ich hasse Leute, die Sätze nicht zuende
Ich denke, Stefan hat das mit Absicht so gemacht, um erstmal alles zu sammeln in einer Textdatei; steht ja auch so in den Kommentaren des Batch-Code und natürlich den Posts von StefanKerstin83 wrote:Allerdings stört das schon ein bisschen. Kann man die Liste vorher irgendwie clearen?

Aber, ja, man kann die Liste vorher leeren, aber dann brauchst du auch kein Skript mehr und kommst mit der von mir ganz am Anfang des Themas vorgschlagenen Methode aus: Menü Markieren > Auswahl in Datei speichern. Das hat sogar den Nebeneffekt, dass das aktuelle Verzeichnis vorgeschlagen als Speicherort wird.
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror