Hallo
Ich Scripte ein wenig und das klappt auch ganz gut. Meine frage ist aber ... wenn ich im Total Commander etwa 10 Dateien auswähle und über Buttionbar mein Script ausführe übergibt Total Commander 10 Dateien auf einmal. Ist es möglich, dass es nur eine Datei ist aber dafür 10 mal hintereinander? Erst die Erste dann die Zweite dann die Dritte, bis alle Dateien abgearbeitet sind...
Das würde auch einiges erleichtern.
Kommando und Parameter Aufruf
Moderators: Hacker, Stefan2, white
Soweit ich weiß geht das nativ im TC immer noch nicht,
dafür gibt es aber schon seit Jahren das nützliche lst2multi-Programm.
Ansonsten kann man doch auch Skripte schreiben die eine Paramterliste nacheinander abarbeiten, ist halt nur mehr Aufwand.
dafür gibt es aber schon seit Jahren das nützliche lst2multi-Programm.
Ansonsten kann man doch auch Skripte schreiben die eine Paramterliste nacheinander abarbeiten, ist halt nur mehr Aufwand.
Christians MakeBat Plugin kann das.
http://www.ghisler.com/dplugins.htm
http://www.ghisler.com/dplugins.htm
Bei mehreren Dateien, Eine nach der Anderen bearbeiten
Das kannst du doch selbst in deinem Skript behandeln.Prana wrote: wenn ich im Total Commander etwa 10 Dateien auswähle
und über Buttionbar mein Script ausführe
übergibt Total Commander 10 Dateien auf einmal.
Ist es möglich, dass es nur eine Datei ist aber dafür 10 mal hintereinander?
Erst die Erste dann die Zweite dann die Dritte, bis alle Dateien abgearbeitet sind...
Welchen TC-Parameter benutzt du beim Aufrufen deines Skripts?
%S fügt die Namen aller markierten Dateien in die Kommandozeile ein
%L erzeugt im TEMP-Verzeichnis einen Listendatei mit den Namen der markierten Dateien und Verzeichnisse, und fügt den Namen der Listendatei in die Kommandozeile ein.
In deinem Skript muss du einfach eine Schleife programmieren, welche die übergebenen Dateien Eine nach der Anderen bearbeitet.
Wenn du mehr über dein Skript verraten möchtest, kann dir hier bestimmt jemand helfen.
- - -
Hier mal als Beispiel eine Batchdatei:
- in die Buttonbar hinzufügen
- als Parameter %L eingeben
- ein paar Dateien auswählen
- auf den Button klicken
Code: Select all
@ECHO OFF
REM Batch script "For_Each_Selected_File_Do.cmd" by Stefan, 2017-07-24, v0.01
REM
REM Use from a Total Commander Button:
REM Command: path\to\this\batch.cmd
REM Parameter: %L (see TC help for more)
REM
REM Usage: select a few files and execute the button.
REM
REM
REM THE CODE
ECHO Found TC's %%L-temp file: %1
ECHO Start reading the temp file... and do something for each file:
ECHO ******************************************
for /f "delims=" %%L in ('type %1') do (
REM For Each Line (=File) in temp file DO:
REM (modify this part for your task)
ECHO Processing "%%L"
ECHO NAME: %%~nxL
ECHO BASE: %%~nL
ECHO EXTe: %%~xL
ECHO File done. Go to next...
ECHO ******************************************
)
ECHO.
ECHO All Done!
PAUSE
(Ich hatte alle Dateien in "c:\Temp\ArtWeaver\Plug-Ins\File Formats" ausgewählt)
Code: Select all
Found TC's %L-temp file: C:\Users\user\AppData\Local\Temp\CMD3E3.tmp
Start reading the temp file... and do something for each file:
******************************************
Processing "c:\Temp\ArtWeaver\Plug-Ins\File Formats\GIF.plg"
NAME: GIF.plg
BASE: GIF
EXTe: .plg
File done. Go to next...
******************************************
Processing "c:\Temp\ArtWeaver\Plug-Ins\File Formats\JPEG.plg"
NAME: JPEG.plg
BASE: JPEG
EXTe: .plg
File done. Go to next...
******************************************
Processing "c:\Temp\ArtWeaver\Plug-Ins\File Formats\PCX.plg"
NAME: PCX.plg
BASE: PCX
EXTe: .plg
File done. Go to next...
******************************************
Processing "c:\Temp\ArtWeaver\Plug-Ins\File Formats\PSD.plg"
NAME: PSD.plg
BASE: PSD
EXTe: .plg
File done. Go to next...
******************************************
Processing "c:\Temp\ArtWeaver\Plug-Ins\File Formats\TIFF.plg"
NAME: TIFF.plg
BASE: TIFF
EXTe: .plg
File done. Go to next...
******************************************
All Done!
Drücken Sie eine beliebige Taste . . .
- - -
Or as a Visual Basic Script:
- in die Buttonbar hinzufügen
- als Parameter %L eingeben
- ein paar Dateien auswählen
- auf den Button klicken
Code: Select all
'// Total Commander VBScript "For_Each_Selected_File_Do.vbs" by Stefan, 2014-07-24, v0.01
REM
REM Use from a Total Commander Button:
REM Command: path\to\this\VBScript.vbs
REM Parameter: %L (see TC help for more)
REM
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSC = CreateObject("WScript.Shell")
strTCtempList = Wscript.arguments.Item(0) ' The TC temp file due to the "%L" parameter
vFileCount = 0
If FSO.FileExists(strTCtempList) Then
Set oTextStream = FSO.OpenTextFile(strTCtempList,1)
Do Until oTextStream.AtEndOfStream
vFileCount = vFileCount + 1
vFullName = oTextStream.ReadLine
Set oFile = FSO.GetFile(vFullName)
vName = FSO.GetFileName(oFile)
vBase = FSO.GetBaseName(oFile)
vExte = FSO.GetExtensionName(oFile)
vPath = oFile.ParentFolder
PathArray = split(vPath, "")
vParent = PathArray( UBound(PathArray) )
vGrand = PathArray( UBound(PathArray) -1)
vGraGran = PathArray( UBound(PathArray) -2)
vDrive = FSO.GetDriveName(oFile)
vTopFld = PathArray( 1)
VTopFld2 = PathArray( 2)
'-----------------------------------------------------------
'TEST OUTPUT:
ret = MsgBox("Processing file No. " & vFileCount & ":" & vbCRLF _
& vFullName & vbCRLF & vbCRLF _
& "Path: " & vbTab & vPath & vbCRLF _
& "Drive: " & vbTab & vDrive & vbCRLF _
& "TopFld: " & vbTab & vTopFld & vbCRLF _
& "TopFld2: " & vbTab & vTopFld2 & vbCRLF _
& "Parent: " & vbTab & vParent & vbCRLF _
& "GrandP: " & vbTab & vGrand & vbCRLF _
& "File: " & vbTab & vName & vbCRLF _
& "Base: " & vbTab & vBase & vbCRLF _
& "Ext: " & vbTab & vExte & vbCRLF _
, vbOKCancel,"TC VBS Test")
if (ret=vbCancel) Then WScript.Quit
'-----------------------------------------------------------
Loop
oTextStream.Close
Else
WScript.Echo "Input file strTCtempList not found."
End If
MsgBox "All "&vFileCount&" Done!"
Code: Select all
---------------------------
TC VBS Test
---------------------------
Processing file No. 1:
c:\Temp\ArtWeaver\Plug-Ins\File Formats\GIF.plg
Path: C:\Temp\ArtWeaver\Plug-Ins\File Formats
Drive: C:
TopFld: Temp
TopFld2: ArtWeaver
Parent: File Formats
GrandP: Plug-Ins
File: GIF.plg
Base: GIF
Ext: plg
---------------------------
OK Abbrechen
---------------------------
Code: Select all
---------------------------
---------------------------
All 5 Done!
---------------------------
OK
---------------------------
.