Übergabe mehrerer Dateien funktioniert nicht

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
bsthree
Junior Member
Junior Member
Posts: 65
Joined: 2009-08-29, 08:34 UTC

Übergabe mehrerer Dateien funktioniert nicht

Post by *bsthree »

Hallo,

ich versuche in TC 9.0a mehrere markierte Dateien mit dem Parameter %S an ein externes Programm zu übergeben, aber TC übergibt nur eine Datei. Kann das jemand nachvollziehen? Ich habe auch schon TC mit einer leeren wincmd.ini gestartet, das Problem bleibt das Gleiche.
User avatar
Dalai
Power Member
Power Member
Posts: 9388
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Von welchem externen Programm reden wir? Wie prüfst du, ob mehrere Dateien oder nur eine übergeben werden/wird? Unterstützt das externe Programm mehrere Parameter?

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Stefan2
Power Member
Power Member
Posts: 4155
Joined: 2007-09-13, 22:20 UTC
Location: Europa

DOS-Batch: ParameterPresenter.cmd

Post by *Stefan2 »

Kann dein "externes Programm" mit mehrere Dateien als Parameter umgehen?



Teste den TC mal mit der folgenden Batch als "Programm":

ParameterPresenter.cmd

Code: Select all

@ECHO OFF
ECHO You executed:
ECHO %0
ECHO %*
ECHO.
ECHO.
ECHO Your Parameters:
FOR %%A IN (%*) DO (ECHO Arg: _%%A_ )
ECHO.
ECHO.
ECHO Done
PAUSE
TC Button:
CMD= "D:\rive\pfad\zu der\ParameterPresenter.cmd"
PARAM=%S





- - - EDIT

Little bit advanced ParameterPresenter.cmd

Code: Select all

@ECHO OFF
ECHO TC folder: %Commander_Path%
ECHO Your Command line:
ECHO %0 %*
ECHO %0 %*> "%TEMP%\zz170309tempfile.txt"
FOR %%? IN ("%TEMP%\zz170309tempfile.txt") DO ( SET /A zz170309Strlength=%%~z? - 2 )
ECHO Command line length: %zz170309Strlength%
ECHO Please note the maximum command line length of 32767 characters.
DEL "%TEMP%\zz170309tempfile.txt"
ECHO.
ECHO.
ECHO Parameter breakdown:
SET I=1& SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (%*) DO (ECHO !I!: _%%A_  && SET /A I=I+1)
ECHO.
ECHO.
ECHO Done
PAUSE
http://stackoverflow.com/questions/5837418/how-do-you-get-the-string-length-in-a-batch-file



 
Last edited by Stefan2 on 2017-03-09, 20:27 UTC, edited 2 times in total.
bsthree
Junior Member
Junior Member
Posts: 65
Joined: 2009-08-29, 08:34 UTC

Post by *bsthree »

In diesem Fall gehts um optipng, das die Übergabe mehrerer Dateien (mit oder ohne Pfadangaben) unterstützt. Aber auch, wenn ich versuche, mehrere Dateien in Notepad++ zu öffnen, wird nur eine Datei übergeben.

Selbstverständlich habe ich auch andere Programme getestet, die mehrere Dateinamen an das Zielprogramm übergeben können. Damit funktioniert die Übergabe einwandfrei, einzig mit TC gehts nicht.
bsthree
Junior Member
Junior Member
Posts: 65
Joined: 2009-08-29, 08:34 UTC

Post by *bsthree »

@Stefan2: Danke für das Skript, sowas hab ich zum Testen gesucht.

Ich habe alle dargestellten Bilder markiert und an das Batchfile übergeben. Ergebnis ist dies:

https://www.dropbox.com/s/0soubs20mdw7m9f/tc.png?dl=0
User avatar
Dalai
Power Member
Power Member
Posts: 9388
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Wie sieht dein Button aus? Auf deinem Screenshot sehe ich keine Markierung irgendwelcher Dateien, so dass logischerweise nur eine (die unter dem Cursor) übergeben wird.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Stefan2
Power Member
Power Member
Posts: 4155
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

bsthree wrote:Ich habe alle dargestellten Bilder markiert und an das Batchfile übergeben. Ergebnis ist dies:

https://www.dropbox.com/s/0soubs20mdw7m9f/tc.png?dl=0
Sieht aus, als hättest du als Parameter im TC-Button ein %S1 oder gar ein %N ?


Klicke mit der rechten Maustaste auf diesen Button, wähle COPY, und poste das mal hier rein.




 
bsthree
Junior Member
Junior Member
Posts: 65
Joined: 2009-08-29, 08:34 UTC

Post by *bsthree »

Auf deinem Screenshot sehe ich keine Markierung irgendwelcher Dateien, so dass logischerweise nur eine (die unter dem Cursor) übergeben wird.
Bei mir sind nach Ausführung durch die externe Anwwendung die Dateien in der Regel nicht mehr markiert, bei dir schon?
Sieht aus, als hättest du als Parameter im TC-Button ein %S1 oder gar ein %N ?


Klicke mit der rechten Maustaste auf diesen Button, wähle COPY, und poste das mal hier rein.
Weder das:

Code: Select all

TOTALCMD#BAR#DATA
C:\Users\xxx\Anwendungen\optipng\optipng.exe %S

%COMMANDER_PATH%\TOTALCMD64.EXE,19
PNG optimieren
C:\Users\xxx\Anwendungen\optipng\

-1
Noch das:

Code: Select all

TOTALCMD#BAR#DATA
C:\Users\xxx\Anwendungen\optipng\optipng.exe
%S
%COMMANDER_PATH%\TOTALCMD64.EXE,19
PNG optimieren
C:\Users\xxx\Anwendungen\optipng\

-1
funktioniert.

Hier noch ein Film dazu:
https://www.dropbox.com/s/ix028jwylb4zd0s/tc.mp4?dl=0
Last edited by bsthree on 2017-03-09, 20:50 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 9388
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Schau dir mal im Process Explorer oder Process Hacker die exakte Kommandozeile des gestarteten Prozesses an. Wenn die Dateinamen alle gelistet sind, liegt das Problem definitiv nicht am TC.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
bsthree
Junior Member
Junior Member
Posts: 65
Joined: 2009-08-29, 08:34 UTC

Post by *bsthree »

Die Dateinamen sind nicht gelistet, der TC übergibt stur nur eine Datei.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3862
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Das Problem ist die Angabe des Startpfades (muss leer sein)
Versuche mal

Code: Select all

TOTALCMD#BAR#DATA
C:\Users\xxx\Anwendungen\optipng\optipng.exe
%S
%COMMANDER_PATH%\TOTALCMD64.EXE,19
PNG optimieren


-1 
#5767 Personal license
User avatar
Dalai
Power Member
Power Member
Posts: 9388
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Nach dem Anschauen deines Videos: Dein Fehler ist, alle Dateien auf den Button zu ziehen. Dateien markieren und Button klicken, dann werden auch alle markierten Dateien übergeben.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
bsthree
Junior Member
Junior Member
Posts: 65
Joined: 2009-08-29, 08:34 UTC

Post by *bsthree »

Dein Fehler ist, alle Dateien auf den Button zu ziehen. Dateien markieren und Button klicken, dann werden auch alle markierten Dateien übergeben.
Ah, danke für die Erleuchtung. Ich war davon ausgegangen, dass es auch mit mehreren Dateien so funktioniert, wie mit einer einzelnen Datei, die man ja auch auf einen Button ziehen kann. Damit kann ich leben.
Post Reply