Hallo,
Ich möchte gerne einen Button haben, der mir aus allen markierten Dateien ohne Erweiterung Verzeichnisse erstellt. (Oder einen Startmenü-Eintrag, das entscheide ich noch...)
Hier hatte ich ein ähnliches Problem mittelns MUT lösen können, aber dieses Mal möchte ich das gerne direkt aus der Buttonbar, quasi, einklickig, lösen (falls möglich).
mit
Kommando: mkdir
und
Parameter: %O
funktioniert es prächtig, allerdings nur für die Datei, auf der der Cursor steht. Bei 150 Dateien, etwas langwierig.
Die in der Hilfe (F1) unter "Dialogbox: Konfigurieren - Buttonbar ändern" beschriebenen Parameter dünken mir nicht ausreichend, soweit ich das überblicke.
Alle Parameter, die eine Liste erstellen, benutzen den kompletten Dateinamen *mitsamt* Erweiterung, das möchte ich aber nicht.
Mein Wunsch ist es, nachdem ich z.B. 2 Dateien
schöner.ext, und
tag.ext
markiert habe, den erstellten Button zu drücken und danach sofort 2 Verzeichnisse erstellt zu bekommen:
schöner, und
tag
Ich hatte mich auch an einer Batch versucht, weil ja mittels "mkdir" sowieso ein DOS Fenster aufspringt, aber dieses FOR, delims=, diverse Prozentzeichen, etc. wollten sich einfach nicht in der passenden Reihenfolge funktionierend zusammenstellen lassen.
Ich meine auch, das ich vor Jahren hier mal ein entsprechendens Posting gesehen habe, aber, Ihr vermutet richtig, es wurde nimmer mehr gesehen...
Ich bin für eine Idee, einen Hinweis sehr dankbar, die/der mich zu meinem Ziel führt.
Erstellen von Verzeichnissen aus Dateinamen ohne Ext?
Moderators: Hacker, Stefan2, white
Erstellen von Verzeichnissen aus Dateinamen ohne Ext?
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?
Mario
Mario
Code: Select all
TOTALCMD#BAR#DATA
%COMSPEC% /C
FOR /F "tokens=*" %%i in (%L) DO mkdir "%%~ni"
wciconex.dll,29
Create folders from marked names without extension
-1
HTH
Holger
Oh, danke. Eine vorgefertigte Lösung. Das ist nett!
1)
Das heisst nun, das es mit TC-eigenen Mitteln nicht geht, oder?
2)
Un das Ganze dann umlautfähig zu gestalten, wäre dann eine Batchdatei nötig, die die Umlaute dann wie hier glanzvoll dargestellt "anpasst"?
2 Fragen (noch):HolgerK wrote:Wie immer: mit Umlauten klappt es nicht so ohne weiteres.
1)
Das heisst nun, das es mit TC-eigenen Mitteln nicht geht, oder?
2)
Un das Ganze dann umlautfähig zu gestalten, wäre dann eine Batchdatei nötig, die die Umlaute dann wie hier glanzvoll dargestellt "anpasst"?
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?
Mario
Mario
Rischtisch.versalzen wrote:Das heisst nun, das es mit TC-eigenen Mitteln nicht geht, oder?
Jep, so ist es.Un das Ganze dann umlautfähig zu gestalten, wäre dann eine Batchdatei nötig, die die Umlaute dann wie hier glanzvoll dargestellt "anpasst"?
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
Oder man nimmt diesen VB-Script und lässt vom inneren Kern:2)
Un das Ganze dann umlautfähig zu gestalten, wäre dann eine Batchdatei nötig, die die Umlaute dann wie hier glanzvoll dargestellt "anpasst"?
Code: Select all
sNewFilePathName = sNewPath & "\" & sName & "." & sExtension
If Not oFSO.FileExists( sNewPath ) Then
If Not oFSO.FolderExists( sNewPath ) Then
oFSO.CreateFolder( sNewPath )
End If
If Not oFSO.FileExists( sNewFilePathName ) Then
oFSO.MoveFile sFilePathName, sNewFilePathName
ElseIf not bSilent then
WScript.Echo "Destination File exists (skipped)!: " & NewFilePathName
End If
ElseIf not bSilent then
WScript.Echo "File with destination folder name exists already (skipped)!: " & sNewPath
End If
Code: Select all
If Not oFSO.FolderExists( sNewPath ) Then
oFSO.CreateFolder( sNewPath )
End If
Dann sollte es auch mit Suchergebnissen in unterschiedlichen Verzeichnissen funktionieren.
Gruß
Holger
Ich glaube, es funktioniert bislang ohne Probleme.
Hier für das Archiv, falls mein Rechner mal explodiert.
Hier für das Archiv, falls mein Rechner mal explodiert.
Code: Select all
@echo off
set skip=4
REM --- die reg.exe auf Windows 7 gibt weniger Zeilen aus als die von XP
reg.exe /? | findstr "Version 3.0" > NUL || set skip=2
:GET_CODEPAGE
for /f "skip=%skip% tokens=3" %%i in (
'reg.exe query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v "ACP"'
) do (
set active_cp=%%i
)
for /f "skip=%skip% tokens=3" %%i in (
'reg.exe query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v "OEMCP"'
) do (
set oem_cp=%%i
)
:DO
REM --- if-Befehl: Würgaround für Windows XP64, wo es in der 32 bit CMD kein chcp mehr gibt
if "[%ProgramFiles(x86)%]" == "[]" chcp %active_cp% > NUL
REM *** Hier die eigentliche Arbeit des Skripts
REM Erstellen von Verzeichnissen aus Dateinamen ohne Ext? / http://ghisler.ch/board/viewtopic.php?t=32527&highlight=
REM !!!!! WICHTIG! bei Aufruf dieser Batch, DARF KEIN *STARTPFAD* angegeben sein, sonst werden die Verzeichnisse in diesem angelegt.
REM FOR /F "tokens=*" %%i in (%1) do @echo TEST mkdir "%%~ni"
REM echo .
REM echo .
REM echo "JETZT kann noch abgebrochen werden, ansonsten wirds durchgefuehrt."
REM echo .
REM pause
FOR /F "tokens=*" %%i in (%1) DO mkdir "%%~ni"
REM --- if-Befehl: Würgaround für Windows XP64, wo es in der 32 bit CMD kein chcp mehr gibt
if "[%ProgramFiles(x86)%]" == "[]" chcp %oem_cp% > NUL
REM echo "Fertig, das wars..."
REM echo .
REM pause
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?
Mario
Mario