Übergabe mehrerer Dateien funktioniert nicht
Moderators: Hacker, Stefan2, white
Übergabe mehrerer Dateien funktioniert nicht
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.
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.
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
DOS-Batch: ParameterPresenter.cmd
Kann dein "externes Programm" mit mehrere Dateien als Parameter umgehen?
Teste den TC mal mit der folgenden Batch als "Programm":
ParameterPresenter.cmd
TC Button:
CMD= "D:\rive\pfad\zu der\ParameterPresenter.cmd"
PARAM=%S
- - - EDIT
Little bit advanced ParameterPresenter.cmd
http://stackoverflow.com/questions/5837418/how-do-you-get-the-string-length-in-a-batch-file
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
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
Last edited by Stefan2 on 2017-03-09, 20:27 UTC, edited 2 times in total.
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.
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.
@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
Ich habe alle dargestellten Bilder markiert und an das Batchfile übergeben. Ergebnis ist dies:
https://www.dropbox.com/s/0soubs20mdw7m9f/tc.png?dl=0
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Sieht aus, als hättest du als Parameter im TC-Button ein %S1 oder gar ein %N ?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
Klicke mit der rechten Maustaste auf diesen Button, wähle COPY, und poste das mal hier rein.
Bei mir sind nach Ausführung durch die externe Anwwendung die Dateien in der Regel nicht mehr markiert, bei dir schon?Auf deinem Screenshot sehe ich keine Markierung irgendwelcher Dateien, so dass logischerweise nur eine (die unter dem Cursor) übergeben wird.
Weder das: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.
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
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
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.
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
- sqa_wizard
- Power Member
- Posts: 3893
- Joined: 2003-02-06, 11:41 UTC
- Location: Germany
Das Problem ist die Angabe des Startpfades (muss leer sein)
Versuche mal
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
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
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.Dein Fehler ist, alle Dateien auf den Button zu ziehen. Dateien markieren und Button klicken, dann werden auch alle markierten Dateien übergeben.