FAQs: TC Automatisieren Skripten (Für jede Datei / Alle Dateien)

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

FAQs: TC Automatisieren Skripten (Für jede Datei / Alle Dateien)

Post by *Stefan2 »

Der TC kann dich bei der Automatisierung deiner Aufgaben unterstützen.
Dazu stellt er dir (zum Beispiel) eine temporäre Liste mit den Namen der ausgewählten Dateien bereit.


Siehe hierzu Menü "Konfigurieren > Buttonbar ändern..."
und im "Buttonbar ändern"-Dialog die [Hilfe] aufrufen:

Auszug:
"%P" - Aktueller Pfad.
"%T" - Pfad im inaktiven Fenster/Panel.
"%N" - Dateiname (siehe auch %O und %E) oder Ordnername\
%P%N - Pfad\Dateiname
"%L","%F" - erzeugen im TEMP-Verzeichnis eine Listendatei mit den Namen der markierten Dateien. (auch "%WL", "%WF", "%UL" und "%UF")

...und noch einige mehr.


Diese TC-Parameter verwendest du in einem Button oder einem "Benutzerdefinierten Befehl" (UDC, user defined command).
Ein UDC kannst du auch als Befehl in einen Button angeben, und du kannst diesem UDC ein Tastaturkürzel vergeben.
Somit ist ein UDC universeller einsetzbar, ein Button aber schneller erstellt (weil direkter Zugriff und weniger Schritte).

Wie man das jeweils genau macht steht weiter unten. Siehe hierzu auch die anderen "FAQs:" Posts wie zum Beispiel:
FAQs: Button anlegen / Buttonbar erstellen / Icons
FAQs: TCs' user commands (em_xxxxx) UserCmd.ini UDC







Beachte

- Pfade und Parameter sollten immer gequoted werden ("...") um eventuelle Leerzeichen zu berücksichtigen.
Aber der TC setzt auch von sich aus Pfade in Anführungszeichen, FALLS er Leerzeichen entdeckt.
(das macht er bei %N, bei %P%N, bei %P%S sowie bei %T%M)
Hier hilft oft nur ausprobieren, oder das Quoting im eigenen Skript abzufangen und selbst zu harmonisieren.

- Umgebungsvariablen "%...%" wie zB %Commander_Path" und "%AppData% sollten nur im "Kommando"-Feld eingegeben werden.
- TC-Parameter wie zB "%F" und %P%N sollten nur im "Parameter"-Feld eingegeben werden.
- Prozentzeichen von Skriptinterpretern wie zB "%i" und "%{$_}" müssen im "Parameter"-Feld durch Verdopplung "escaped" werden: "%%i", "%%{$_}"
- Für PowerShell-Parameter müssen die Anführungszeichen verdreifacht werden ( "%F" >> """%F"""),
oder, falls es keine PoSh-Variable ist, welche expandiert werden muss, in einfachen Anführungszeichen gesetzt werden ('%F').

- Ein ' * ' Stern als erstes Zeichen im "Kommando"-Feld startet die angegebene Anwendung mit Adminrechten (elevated run as admin)
- Ein ' ? ' Fragezeichen als erstes Zeichen im "Parameter"-Feld zeigt den Befehl beim Ausführen noch einmal an (Überprüfen + Modifizieren)


- - -


Skript erstellen

Als Skriptsprache kann, je nach Aufgabe und Möglichkeiten der Skriptsprache,
zB eine MS DOS-Batch, ein PowerShell, VBScript, JS JavaScript, AutoHotkey oder Anderes verwendet werden.


Das Skript wird folgendermaßen vom TC aus aufgerufen:
Kommando: "%Commander_Path%\myTools\mySkript.VBS"
Parameter: "%L"


(Der Parameter "%Commander_Path%" wird durch den Pfad zum TC-Installationsordner des laufenden TCs ersetzt)




"%L" (auch "%F", "%WL", "%WF", "%UL" und "%UF") - erzeugen im TEMP-Verzeichnis des Benuzters (%temp%)
eine Textdatei mit einer Liste der Namen der markierten Dateien, je nach Parameter inklusive Pfad oder nicht.

(Mit "Dateien" meinen wir Beides, Dateien und Ordner. Beim Exportieren der Namen stellt der TC bei allen Ordnern einen
Backslash ("\") hinten an (X:\IchBinEinOrdner\), bei Dateien natürlich nicht, dadurch kann man im Skript Dateien und Ordner unterscheiden.
Oder man verwendet dazu die Fähigkeiten "seiner" Skriptsprache)


Beispiel:
C:\Users\Dein Benutzername\AppData\Local\Temp\WER9F1A.tmp
("WER9F1A" ist eine jeweils andere, beliebige vom TC vergebene Zeichenfolge)
(Verwende diese Parameter immer mit Anführungszeichen ("...") für den Fall, dass du Leerzeichen im Benuzternamen hast)

Beispiel Dateiinhalt bei Verwendung von "%L" oder "%WL" oder "%UL"
L:\aufwerk\Pfad zum Ordner\mit\Datei 1.ext
L:\aufwerk\Pfad zum Ordner\mit\Datei 2.ext
L:\aufwerk\Pfad zum Ordner\mit\Datei 3.ext

Beispiel Dateiinhalt bei Verwendung von "%F" oder "%WF" oder "%UF"
Datei 1.ext
Datei 2.ext
Datei 3.ext


Im Skript musst du die Parameter (hier "%L") übernehmen (zB mittels %1, $Args[0], oder Ähnlichem),
dann diese Temp-Datei lesen und Zeile-für-Zeile abarbeiten.
Auch beim Abarbeiten musst du dich um die Anführungszeichen ("Datei 1.ext") selbst kümmern.

Falls dein Skript komplett in die Button-Box passt (also ohne extra Skriptdatei),
dann wird der TC-Parameter direkt im Parameterfeld eingetragen (also zB ' TYPE "%L" ')
und vom TC expandiert zu zB ' TYPE "C:\Users\Dein Benutzername\AppData\Local\Temp\WER9F1A.tmp" '




Beispiele:

-------------------------------------- Beispiel 1 (alles innerhalb eines Buttons, ohne extra Skriptdatei)
Kommando: cmd /k
Parameter: for /F "delims=" %%Z in ( ' TYPE "%L" ' ) do @ECHO %%Z
Startpfad:
Icondatei: C:\windows\system32\cmd.exe
Tooltip : Test|DOS Batch

--------------------------------------
Hier wird die WindowsTM CMD.exe als Anwendung gestartet, welche dann die übergebenen Parameter ausführt.



-------------------------------------- Beispiel 2 (führe eine Skriptdatei aus)
Kommando: "%COMMANDER_PATH%\TOOLs\ForEachSelectedDO.vbs"
Parameter: "%L"
Startpfad:
Icondatei: C:\windows\System32\WScript.exe,2
Tooltip : Test|ForEachSelectedDO VBS

--------------------------------------
Hier wird die mit 'VBS' verknüpfte Anwendung cscript.exe oder wscript.exe gestartet, welche dann die Skriptdatei ausführt und die Parameter übergibt.
Inhalt des Beispielskript "ForEachSelectedDO.vbs"
~~~~~~~~~~~~~~~~~~~~~
Set strTCTempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments.Item(0), 1)
Do While Not strTCTempFile.AtEndOfStream
MsgBox strTCTempFile.ReadLine
Loop

--------------------------------------



-------------------------------------- Beispiel 3 (alles innerhalb eines Buttons)
Kommando: PowerShell -NoExit
Parameter: Get-Content '%L' | ForEach-Object{ $_ }
Startpfad:
Icondatei: powershell.exe
Tooltip : Test|PowerShell

--------------------------------------
Hier wird die PowerShell.exe aufgerufen, welche die Befehle "Get-Content" und "ForEach" ausführt.


-------------------------------------- Beispiel 4 (führe eine Skriptdatei aus. AHK ist bei mir nicht installiert sondern wird "portable" ausgeführt.)
Kommando: "%COMMANDER_PATH%\TOOLs\AHK\autohotkey.exe " "%COMMANDER_PATH%\TOOLs\ForEachFileDo.ahk"
Parameter: "%L"
Startpfad:
Icondatei: "%COMMANDER_PATH%\TOOLs\AHK\autohotkey.exe"
Tooltip : Test|ForEachFileDo AHK

--------------------------------------
Hier wird die Autohotkey.exe gestartet, mit der "ForEachFileDo.ahk" Skriptdatei und "%L" als Parameter.
Autohotkey übernimmt das Argument mittels "%1%" und verarbeitet die Dateiliste Zeile-für-Zeile.

ForEachFileDo.ahk
~~~~~~~~~~~~~~~~~
Loop, Read, %1%
MsgBox %A_LoopReadLine%

--------------------------------------



-------------------------------------- Beispiel 5 (führe eine Skriptdatei aus)
Kommando: X:\myFolder>ForFiles /M *.txt /c "cmd /c SetModifiedToCreated1.cmd @file"
Parameter:
Startpfad:
Icondatei: C:\windows\system32\cmd.exe
Tooltip : Test|Call Batch|Set Modified date To Created date

--------------------------------------
Hier wird im Ordner "X:\myFolder" das WindowsTM-Programm "ForFiles" aufgerufen, welches für jede *.TXT-Datei die "SetModifiedToCreated1"-Batch ausführt.
SetModifiedToCreated1.cmd
~~~~~~~~~~~~~~~~~~~~~~~~~~
SET myfile=%~1
REM Touch for Win32, Steve P. Miller 1997 http://pobox.com/~stevemil
for /f "tokens=2 skip=4" %%A in ('touch.exe /c /v %myfile%') DO @SET Timestamp=%%A
touch /m /d %Timestamp% %myfile%

--------------------------------------



- - -


Für den Zugriff auf den Ordner, in welchem du in TC gerade bist, kannst du den TC-Parameter %P verwenden.

Siehe Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern .." :
%P ...bewirkt, dass der Pfad des Quellverzeichnisses in die Kommandozeile gestellt wird (inkl. \ am Ende).

Beispiel-Button:
KOMMANDO: cmd /k
PARAMETER: ECHO "%P"
STARTPFAD:
ICON: cmd.exe

Dieses %P musst du jetzt sinnvoll in den Kommandozeilenaufruf deiner Anwendung integrieren,



Für den Zugriff auf den im TC ausgewählten Ordner kannst du z.B. %P%N verwenden

Beispiel-Button:
KOMMANDO: cmd /k
PARAMETER: ECHO %P%N
STARTPFAD:
ICON: cmd.exe

Oder verwende hier %C
Siehe Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern .." :


Die Parameter machen keinen Unterschied zwischen Dateien und Ordner.
zB kann %N der Name eines Ordners oder einer Datei beinnhalten.


Ein Problem ist immer das korrekte Quoting (In Anführungszeichen setzen).
TC setzt bei manchen Parametern von sich aus Anführungszeichen,
aber nur wenn er ein Leerzeichen im Pfad\Namen erkennt.
(das macht er bei %N, bei %P%N, bei %P%S sowie bei %T%M)
Für erste Tests verwende nur Pfade und Namen OHNE Leerzeichen.
Die volle Kontrolle über Anführungszeichen hast du nur, wenn du ein eigenes Skript verwendest
und dich selbst darum kümmerst. Solch einem Skript übergibst du dann mit den TC-Parametern
die Information über die ausgewählten Dateien/Ordner bzw. dem Ziel (Target=%T).
Siehe auch unten bei "Temporäre Textdatei ".



Für ein-oder-mehrere ausgewählte verwende %S, bzw. mit Pfad: %P%S
Siehe Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern .." :
"""Bitte beachten Sie die maximal mögliche Länge der Kommandozeile: 32767 Zeichen."""

Beispiel-Button:
KOMMANDO: cmd /k
PARAMETER: ECHO %P%S
STARTPFAD:
ICON: cmd.exe



%F %L: Temporäre Textdatei im Temp-Ordner mit allen markierten Dateien/Ordner

Oder baue eine Schleife, um jeden ausgewählten Ordner einzeln
an den Befehl zu übergeben (hier ohne Begrenzung der Länge wie bei %S)
Dazu verwendet man den TC-Parameter %L bzw. %F.
Siehe Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern .." :

Beispiel-Button:
Hier als MS-DOS Batchdatei, aber es geht auch mit PowerShell oder AutoHotkey oder Anderen.
KOMMANDO: cmd /k
PARAMETER: for /F "tokens=*" %%F in (' type "%L"') DO @ECHO "%%F"
STARTPFAD:
ICON: cmd.exe
((( %%F ist eine Variable der cmd.exe, /F eine der FOR-Schleife, und %L eine Variable von TC, um alle Markierten in einer Textdatei festzuhalten)))



Tipp: um Unicode und auch deutsche Umlaute korrekt zu verarbeiten verwende die Unicode-Parameter %WF bzw. %WL.

Ordnernamen haben immer einen Backslash "\" angehängt. Dadurch kann man sie erkennen und gezielt behandeln.

Ein Problem ist immer das korrekte Quoting (In Anführungszeichen setzen).
TC setzt bei manchen Parametern von sich aus Anführungszeichen, aber nur wenn er ein Leerzeichen im Pfad\Namen erkennt.
(das macht er bei %N, bei %P%N, bei %P%S sowie bei %T%M)
Für erste Tests verwende nur Pfade und Namen OHNE Leerzeichen.



Du kannst auch eine Batchdatei (oder PowerShell oder AutoHotkey oder...) verwenden,
welche die temporäre Datei hinter %F bzw. %L Zeile-für-Zeile abarbeitet, und dich dort selbst um die Anführungszeichen kümmern:

Beispiel-Button:
KOMMANDO: "%Commander_Path%\MyBatch.cmd"
PARAMETER: "%L"
STARTPFAD:
ICON: C:\Windows\System32\imageres.dll

MyBatch.cmd:
@ECHO OFF
REM Command: path\to\this\batch.cmd
REM Parameter: "%L" (see TC help for more)
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 Drive: %%~dL
 ECHO PATH: "%%~dpL"
 ECHO NAME: %%~nxL
 ECHO BASE: %%~nL
 ECHO EXTe: %%~xL
 ECHO File %%~nxL done. Go to next...
ECHO ******************************************
)
ECHO.
ECHO All Done!
PAUSE







Wenn man sich mit den DOS-Befehlen etwas auskennt (oder danach googelt) kann man alles Mögliche damit machen:

Zum Beispiel im inaktiven Panel (Target; %T) den gerade im aktiven Panel ausgewählten Ordner (%N)
zu erstellen und dann die Dateien von Quelle (%P%N) ins gerade so erstellte Ziel (%T%N) kopieren.

Beispiel-Button:
KOMMANDO: cmd.exe /K
PARAMETER: MD %T%N & Robocopy %P%N %T%N /E
STARTPFAD:
ICON: Robocopy.exe
TOOLTIP: Kopiere Ordner mit seinem Inhalt in das andere Panel

MD ist ein DOS interner Befehl "Make Dir" (erstelle Verzeichnis)
Für %P, %N und %T siehe TC-Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern ..".
Hilfe zur cmd.exe in einer DOS-Box (cmd) mittels Befehl cmd /?
/E ist ein Parameter von RoboCopy.
Hilfe zur RoboCopy.exe in einer DOS-Box (cmd) mittels Befehl RoboCopy /?






Beispiel: Integration von XCOPY Quelle [Ziel] [Optionen] in einen Button

Beispiel-Button:
KOMMANDO: cmd.exe /K
PARAMETER: XCOPY %P%N %T%N /K/R/E/I/S/C/H
STARTPFAD:
ICON: wcmicons.dll
TOOLTIP: Kopiere Ordner mit seinem Inhalt in das andere Panel

Hilfe zur XCOPY.exe in einer DOS-Box (cmd) mittels Befehl XCOPY /?
Für %P, %N und %T siehe TC-Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern ..".




Beispiel: Kopieren von einen oder mehrere ausgewählte Ordner mittels der PowerShell

Beispiel-Button:
KOMMANDO: PowerShell -NoExit
PARAMETER: Get-Content '%F' | ForEach{  COPY  $_   '%T'   -recurse }
STARTPFAD:
ICON: PowerShell

Für Hilfe zu Powershells-"COPY" verwende in einer Powershell-Konsole den Befehl: HELP copy-item -FULL
Für %F und %T siehe TC-Hilfe > Bedienung > Benutzeroberfläche > Klick auf Buttonbar-Bild > Klick auf ".. Dialogbox zum Ändern ..".
%F und %T sind in einfachen Anführungszeichen '...' gequoted: ' %F '
Bei der Verwendung von Doppelten Anführungszeichen "..." müssten wir diese im Button verdreifachen """...""".
Oder escape das Anführungszeichen: \"...\".
Dies ist nötig da die verschiedenen involvierten Interpreter jeweils die äußeren Anführungszeichen entfernen.




- - -



Um einen Button "von Hand" zu erstellen:


- Rechtklick auf einen freien Platz in der Buttonbar, > "Ändern..." anklicken - (oder Menü "Konfigurieren > Buttonbar ändern...")
- Wähle den Button aus, neben dem du einen neuen Button erstellen möchtest und
- klicke auf [Anfügen]
- Als Nächstes kann du den Button konfigurieren.... zB:

--------------------------------------
Kommando: "L:\aufwerk\pfad zum Programmordner\ProgrammX\ABC.exe"
Parameter: %P%N (oder "%F", oder "%L", oder...)
Startpfad: Meistens leer lassen
Icondatei: Datei mit einem Icon. (zB WCMICONS.DLL)
Tooltip : Was macht dieser Button|hier Zeilenumbruch|erneuter Umbruch

--------------------------------------


Das "Kommando" und die "Icondatei" werden immer benötigt. Die "Parameter" nur bei Bedarf. Der "Startpfad" bleibt meistens leer.
Als Kommando gib den Befehl ein, wie man ihn auch im Kommandozeileninterpreter (einer DOS-Box) eingeben würde.
Probiere den Befehl zuerst mal in einer DOS-Box aus und lies die Anleitung der externen Programme.
Für "portable Pfade" wie zB "%COMMANDER_PATH%" siehe http://www.ghisler.ch/wikide/index.php/Navigation#Pseudo-Umgebungsvariablen

Weitere Icon-Resourchen findest du dort > https //ghisler.ch/board/viewtopic.php?p=305387#p305387 (viewtopic.php?p=305387#p305387)



- - -


Button kopieren / austauschen

Einen Button kann man auch über die Zwischenablage kopieren und einfügen.
Somit kann man Buttons auch über das Forum mit Anderen austauschen.
Solch einen Button-Code erkennt man an der ersten Zeile, welche immer lautet: "TOTALCMD#BAR#DATA"
Der Austausch erfolgt über das Kontextmenü eines Buttons bzw. der Buttonbar.




- - -


Einen "Benutzerdefinierten Befehl" (UDC, User-defined Command) anlegen

- Rechtklick auf einen freien Platz in der Buttonbar, > "Ändern..." anklicken
- klicke auf [Anfügen]
- Im Button-Dialog auf das [Lupensymbol] klicken
- Links, die Kategorie "usercmd.ini" auswählen
- Unten, auf Button [Neu] klicken
- Name für den benutzerdefinierten Befehl eingeben, z.B. [ em_MeinErstesUDC ] (das "em_" muss sein!)
- Auf Button [OK] klicken

Eigenschaften für den Befehl eingeben...z.B.:
--------------------------------------
Kommando: "L:\aufwerk\pfad zum Programmordner\ProgrammX\ABC.exe"
Parameter: %P%N (oder "%F", oder "%L", oder...)
Startpfad: Meistens leer lassen
Icondatei: Datei mit einem Icon. (zB WCMICONS.DLL)
Tooltip : Was macht dieser Button|hier Zeilenumbruch|erneuter Umbruch

--------------------------------------

- Den Dialog mit [OK] schließen.
- Den Befehlsbrowser mit [OK] schließen.
- (Den Button-Dialog mit [OK] schließen, falls geöffnet)

Fertig.




- - -


Einem Befehl (em_ oder cm_) ein Tastaturkürzel zuweisen

- Öffne Menü "Konfigurieren > Einstellungen"
- Wähle auf der linken Seite "Diverses"
- Im Bereich "Tastenkombination umdefinieren"
- Bei Tastaturkürzel wähle eine freie Kombination
- Klicke auf das Vergrößerungsglas um ein Kommando auszusuchen
- Tippe em_ (oder cm_) zum filtern und wähle das gewünschte Kommando (z.B.: em_Rechner)
- Bestätige mit dem [grünen Haken]-Button.
- Schließe den Einstellungsdialog mit [OK]
- Noch einmal [OK] und Fertig.

Über die Taste mit dem großen Pfeilsymbol kannst du dir die bereits vergebenen Kombination ansehen.




- - -


Einem Befehl einen Alias zuweisen

- Öffne Menü "Konfigurieren > Einstellungen"
- Wähle auf der linken Seite "Diverses"
- Im Bereich "Tastenkombination umdefinieren"
- Bei "(o) Alias:" vergebe ein Kürzel als Alias, zB. 'hh'
- Klicke auf das Vergrößerungsglas um ein Kommando auszusuchen
--- Filter: help > > > findet zB "cm_HelpIndex (Hilfe: Index)"
- Bestätige mit dem [grünen Haken]-Button.
- [OK]

Jetzt kann man in der TC-Kommandozeile 'hh' plus ENTER-Taste verwenden um die Hilfe aufzurufen.
Für einen sinnvolleren Anwendungszweck siehe zB "FAQs: Dateien auswählen markiern selektieren"




- - -


In einen Button kannst du auch mehrere Kommandos, durch ein Komma getrennt, nacheinander aufrufen.

Beispiel:
Kommando: cm_About,cm_HelpIndex,cm_FtpConnect



Das funktioniert auch mit einem "Benutzerdefinierten Befehl":

[em_CDzuOrdner]
cmd= CD X:\Projekte\2018\

Kommando: cm_FocusRight,em_CDzuOrdner,cm_SrcByDateTime


cm_FocusRight=4002;Focus on right file list
cm_SrcByDateTime=324;Source: Sort by date




- - -

Weitere Informationen:

FAQs: TC Automatisieren Scripten Steuern Skripten
https //www.ghisler.ch/board/viewtopic.php?t=49107 (https://www.ghisler.ch/board/viewtopic.php?t=49107)

Post 1 - Button und Benutzerdefinierte Befehle
Post 2 - Quoting / Anführungszeichen
Post 3 - Aktionen für ausgewählte Dateien
Post 4 - Externe Tools zur Abarbeitung der ausgewählten Dateien
Post 5 - TC von außen steuern / SendMessage / WM_USER
Post 6 - Externe Tools zur direkten Dateimanipulation


- - -

Beispiele

Plugin für batch Image resize? viewtopic.php?f=2&t=50539





Verwende ein VBScript in Spalten und UmbenennTool

Um das Ergebnis eines Skriptes im MUT MultiUmbenennTool bzw.
als Benutzerdefinierte Spalte (CustomColumns) zu verwenden, muss man ein Plugin zwischen schalten.

"Script Content Plugin" https://www.ghisler.ch/board/viewtopic.php?p=68714
(how-to manual: https://www.ghisler.ch/board/viewtopic.php?p=206065#p206065)

"WinScript Advanced Content Plugin" http://ghisler.ch/board/viewtopic.php?t=44032



Installiere eins dieser Plugins, schreibe dein Skript, konfiguriere das Plugin und verwende es.

Example script

Code: Select all

'///  https://ghisler.ch/board/viewtopic.php?p=354247#p354247
' Re: Multi Rename Tool. Is there a GREAT Grandparent directory?



'// ==============================================================
'*** Script for Script Content Plugin 0.2
'*** http://www.totalcmd.net/plugring/script_wdx.html
'*** http://wincmd.ru/plugring/script_wdx.html
'*** In default var "filename" is the current file incl. full path

'// Nach Installation im Installationsverzeichnis des Plugins eine Datei namens "NameOfMyScript.vbs" mit dem gewünschten Scriptcode anlegen.
'// After installation create a file "NameOfMyScript.vbs" in the plugin installation folder with the wanted script code.
'-----------------------------
'
'// "Script Content Plugin"-Basics:
'	"filename" is a build-in variable to hold the current processed full filename (D:\Rive\Path to\file name.ext).
'	Example: filename equals e.g. "c:\Python 3.1\Tools\versioncheck\py version check.py"
'-----------------------------
'
'// Use VBS-code to do something to that "filename".
'    Example code:
'      strFullName = filename
'    	'MsgBox "Current FullName: " & strFullName
'      
'      strPath = left(strFullName, InstrRev(strFullName, "\") -1)
'    	'MsgBox "Path: " & strPath
'      
'      strParent = mid(strPath , InStrRev(strPath, "\") +1)
'    	'MsgBox "Parent folder: " & strParent
'      
'      strName = mid(strFullName, InstrRev(strFullName, "\") +1)
'    	'MsgBox "Name: " & strName
'      
'      If InStr(strName, ".") Then
'        strBase = left(strName, InstrRev(strName, ".") - 1 )
'        strExte = mid( strName, InstrRev(strName, ".") + 1 )
'    		'MsgBox "Base: " & strBase & "  <DOT>  " & strExte
'      End If
'-----------------------------
'
'// Use "content=", "content1=" and up to "content9=" to store the wanted script result.
'Example:
'content  = strExte   ' use [=script.Result] 
'content1 = strPath   ' use [=script.Result1] 
'content2 = strName   ' use [=script.Result2]
'...
'content9 = "" 			' use [=script.Result9]
'-----------------------------
'
'// Um dieses Skript zu verwenden, editiere die script.ini:
'// To use this script, modify the script.ini:
 '[Script]
 'Section=NameOfMySection
'
 '[NameOfMySection]
 'LongName=0
 'ParseDirs=1
 'Script=NameOfMyScript.vbs
'-----------------------------
'
'// In TC verwende "[=script.Result]", "[=script.Result1]" bis zu "[=script.Result9]"
' im MultiUmbenennTool oder für Benutzerdefinierte Spalten.
'// In TC use "[=script.Result]", "[=script.Result1]" and up to "[=script.Result9]"
'in MultirenameTool or user defined CustomCulumns.
'// ==============================================================
'// ==============================================================
'// ==============================================================


'// Dedicated example script for: Multi Rename Tool. Is there a GREAT Grandparent directory?

'// Get Level of directory paths:

		Set FSO = CreateObject("Scripting.FileSystemObject")
		sFullName = filename
		If(Right(sFullName,1)= "\") Then 		' It's a folder (TC add trailing backslash)
			Set oItem 			= FSO.GetFolder(sFullName)
		Else									' It's a file
			Set oItem 			= FSO.GetFile(sFullName)
		End If        
		iFileCount = iFileCount + 1
        sName   = FSO.GetFileName(oItem)		' "File.txt"
        sBase   = FSO.GetBaseName(oItem)		' "File"
        sExte   = FSO.GetExtensionName(oItem)	' "txt" (no dot)
		sDrive  = FSO.GetDriveName(oItem)		' "X:"
		'------------------------------------------------------
		sPath   = FSO.GetParentFolderName(oItem)
		'sPath   = oItem.ParentFolder
		
		aPathParts = split(sPath, "\")
		iUBound = UBound(aPathParts)
							  sParentFolder1 = aPathParts(iUBound)
		If (iUBound > 0) Then sParentFolder2 = aPathParts(iUBound -1)
		If (iUBound > 1) Then sParentFolder3 = aPathParts(iUBound -2)
		If (iUBound > 2) Then sParentFolder4 = aPathParts(iUBound -3)
		If (iUBound > 3) Then sParentFolder5 = aPathParts(iUBound -4)
		If (iUBound > 0) Then sTopFolder1  	 = aPathParts(1)
		If (iUBound > 1) Then sTopFolder2 	 = aPathParts(2)
		If (iUBound > 2) Then sTopFolder3 	 = aPathParts(3)
		
		
		strParentDir = sParentFolder1
		strGrandPaDir = sParentFolder2
		strGtGrandPaDir = sParentFolder3
		sGtGtGrandPaDir = sParentFolder4
		sGtGtGtGrandPaDir = sParentFolder5
		
		'oItem.DateCreated	
		'oItem.DateLastAccessed
		'oItem.DateLastModified



'//Give the result(s) back to TC
content  = strParentDir  			 ' use [=script.Result]  in TC and remove [E] from extension field
content1 = strGrandPaDir                 ' use [=script.Result1] in TC
content2 = strGtGrandPaDir               ' use [=script.Result2]
content3 = sGtGtGrandPaDir
content4 = sGtGtGtGrandPaDir
content9 = ""

'Example:
'For file: c:\Windows\System32\DriverStore\drvindex.dat
'[=script.Result2] # [=script.Result1] # [=script.Result] # [N]
'Result: Windows # System32 # DriverStore # drvindex.dat

'// END


- - -

FAQs: TC Plugin Add-On AddOn Externe Tools verwenden
viewtopic.php?p=342114#p342114

FAQs: Benutzerdefinierte Spaltenansicht / Dateieigenschaften anzeigen
viewtopic.php?p=335840#p335840




Mal was anderes:
https://www.youtube.com/watch?v=tussa6KKCZU


 
User avatar
matixx
Power Member
Power Member
Posts: 1117
Joined: 2003-03-21, 02:37 UTC
Location: ....

Re: FAQs: TC Automatisieren / Scripten / Für jede Datei / Alle Dateien

Post by *matixx »

Danke dir.

Was hältst du davon hier auch den "TCTdT" zu verwenden ?
Post Reply