Ordnerstruktur aus Dateinamen erstellen
Hallo, hat jemand eine Idee, wie es möglich ist aus einem Dateinamen eine Ordnerstruktur zu erstellen.
Ich habe mir Playlisten generiert, die nach dem folgenden Prinzip benannt sind.
Artist - Album - Disk01.m3u
Aus dieser Datei würde ich gerne eine Ordnerstruktur erstellen.
Im Ordner Album liegt der Ordner Disk01.
Album wiederum liegt im Ordner Artist.
Und die Playlist soll am Ende in den Ordner Disk01 verschoben werden.
Vielleicht hat ja jemand eine Idee, wo man sowas machen könnte.
Danke schon mal.
Ich habe mir Playlisten generiert, die nach dem folgenden Prinzip benannt sind.
Artist - Album - Disk01.m3u
Aus dieser Datei würde ich gerne eine Ordnerstruktur erstellen.
Im Ordner Album liegt der Ordner Disk01.
Album wiederum liegt im Ordner Artist.
Und die Playlist soll am Ende in den Ordner Disk01 verschoben werden.
Vielleicht hat ja jemand eine Idee, wo man sowas machen könnte.
Danke schon mal.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 56675
Url: https://administrator.de/contentid/56675
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
62 Kommentare
Neuester Kommentar
Hallo robcomboy!
Zur Abwechslung einmal etwas VBS:
Aufruf zB mit
Grüße
bastla
Zur Abwechslung einmal etwas VBS:
'OrdnerStrukturErzeugen.vbs
If WScript.Arguments.Count < 1 Then
WScript.Echo "Bitte Startordner beim Aufruf angeben oder auf das Script ziehen!"
WScript.Quit(1)
End If
Set fso = CreateObject("Scripting.FileSystemObject")
BasisPfad = WScript.Arguments(0)
If Not fso.FolderExists(BasisPfad) Then
WScript.Echo "Der Startordner wurde nicht gefunden!"
WScript.Quit(1)
End If
For Each Datei In fso.GetFolder(BasisPfad).Files
If Right(Datei.Name, 4) = ".m3u" Then
Ordner = Split(Left(Datei.Name, Len(Datei.Name) - 4), "-")
Pfad = BasisPfad
For i = 0 To UBound(Ordner)
Pfad = Pfad & "\" & Trim(Ordner(i))
If Not fso.FolderExists(Pfad) Then fso.CreateFolder(Pfad)
Next
Datei.Move Pfad & "\"
End If
Next
WScript.Echo "Fertig."
C:\Scripts\OrdnerStrukturErzeugen.vbs "D:\Meine vielen Musikdateien"
Grüße
bastla
Hallo robcomboy!
Jetzt bin ich ein wenig ratlos: Ich habe die oben stehende Version nochmals aus dem Forum heruntergeladen und mit Erfolg auf beide Arten getestet. Insbesondere per Drag & Drop dürfte es ohnehin nicht zu diesem Fehler kommen, da ja auf jeden Fall ein Argument übergeben wird.
Schreib vielleicht zum Testen als erste Zeile ein
hinein - damit wird die Anzahl der übergebenen Argumente angezeigt.
Grüße
bastla
Jetzt bin ich ein wenig ratlos: Ich habe die oben stehende Version nochmals aus dem Forum heruntergeladen und mit Erfolg auf beide Arten getestet. Insbesondere per Drag & Drop dürfte es ohnehin nicht zu diesem Fehler kommen, da ja auf jeden Fall ein Argument übergeben wird.
Schreib vielleicht zum Testen als erste Zeile ein
WScript.Echo WScript.Arguments.Count
Grüße
bastla
Hallo robcomboy!
... however, damit Du aber doch noch zu Deiner Struktur kommst, ersetze einfachen den ganzen Parameter- und Ordner-Check-Teil (also die Zeilen vor dem "For Each") durch die Zeile
und versuch es dann mit einem Aufruf ohne Argumente (oder einem Doppelklick) - sinnvoller Weise nur mit einigen Testdaten.
Grüße
bastla
Woran könnte das liegen?
Da habe ich momentan wirklich keine Ahnung ... ... however, damit Du aber doch noch zu Deiner Struktur kommst, ersetze einfachen den ganzen Parameter- und Ordner-Check-Teil (also die Zeilen vor dem "For Each") durch die Zeile
BasisPfad = "D:\Vollständiger Pfad zum Ordner mit den m3u-Dateien"
Grüße
bastla
ach jetzt versteh ich erst wie Du das genau haben willst. Dann korrigiere ich mein Posting zu folgendem:
Diese batchdatei legst du einfach in das Verzeichnis mit deinen Playlists.
miniversum
@echo off
for /F "delims=" %%a in (dir /b /A-D *.m3u) do call dodir "%%a"
goto ende
:dodir
for /F "tokens=1-3 delims=- " %%a in (%1) do md "%%a\%%b\%%c" && move %1 "%%a\%%b\%%c"
goto eof
:ende
Diese batchdatei legst du einfach in das Verzeichnis mit deinen Playlists.
miniversum
@miniversum
Ein Grund, warum ich es per VBS versucht habe, sind eventuelle Leerstellen in Artist und / oder Album ...
Grüße
bastla
Ein Grund, warum ich es per VBS versucht habe, sind eventuelle Leerstellen in Artist und / oder Album ...
Grüße
bastla
Ok macht Sinn.
Wären dann auch Bindestriche abgedeckt???
Ich korrigiere meins dannochmal zu:
miniversum
Wären dann auch Bindestriche abgedeckt???
Ich korrigiere meins dannochmal zu:
@echo off & enabledelayedexpansion
for /F "delims=" %%a in (dir /b /A-D *.m3u) do call dodir "%%a"
goto ende
:dodir
for /F "tokens=1-3 delims=-" %%a in (%1) do (
set "artist=%%a"
set "album=%%b"
set "titel=%%c"
set "artist=%artist:~0,-1%"
set "allbum=%album:~1,-1%"
set "titel=%titel:~1%"
md "%artist%"\"%album%"\"%titel%"
move %1 "%artist%\%album%\%titel%"
)
goto eof
:ende
miniversum
Hallo robcomboy!
Sorry, eine Zeile zuviel weggeworfen ...
Grüße
bastla
Sorry, eine Zeile zuviel weggeworfen ...
Set fso = CreateObject("Scripting.FileSystemObject")
BasisPfad = "G:\01\m3u"
For Each Datei In fso.GetFolder(BasisPfad).Files
If Right(Datei.Name, 4) = ".m3u" Then
Ordner = Split(Left(Datei.Name, Len(Datei.Name) - 4), "-")
Pfad = BasisPfad
For i = 0 To UBound(Ordner)
Pfad = Pfad & "\" & Trim(Ordner(i))
If Not fso.FolderExists(Pfad) Then fso.CreateFolder(Pfad)
Next
Datei.Move Pfad & "\"
End If
Next
WScript.Echo "Fertig."
Grüße
bastla
Hallo miniversum!
Wenn Du nur nach "-" (und ev wegen des Typs ".m3u") noch nach "." trennst und das dann entstehende Token 4 für die Verzeichniserstellung ignorierst, bleiben immer noch die lästigen Leerstellen nach Artist, vor und nach Album und vor Diskxx - Biber hätte dafür sicher etwas auf Lager, ich müsste mir mit Zwischenvariablen (zB %Album%) und Konstruktionen wie
etc behelfen.
Grüße
bastla
[Edit] @miniversum: Hatte Deine Edits nicht gesehen ... [/Edit]
Wären dann auch Bindestriche abgedeckt???
UU ein weiteres Problem ... und einen Delimiter aus 3 Zeichen (" - ") kann "for" leider nicht zusammenhängend verarbeiten.Wenn Du nur nach "-" (und ev wegen des Typs ".m3u") noch nach "." trennst und das dann entstehende Token 4 für die Verzeichniserstellung ignorierst, bleiben immer noch die lästigen Leerstellen nach Artist, vor und nach Album und vor Diskxx - Biber hätte dafür sicher etwas auf Lager, ich müsste mir mit Zwischenvariablen (zB %Album%) und Konstruktionen wie
if "%Album:~0,1%"==" " set "Album=%Album:~1%"
if "%Album:~-1%"==" " set "Album=%Album:~0,-1%"
Grüße
bastla
[Edit] @miniversum: Hatte Deine Edits nicht gesehen ... [/Edit]
Hallo robcomboy!
Ich mag es ja noch immer nicht wahrhaben, dass die Übergabe eines Pfades nicht klappt, daher vielleicht folgende Variante:
Bei Übergabe eines gültigen Pfades als Argument wird dieser verwendet, im anderen Fall landest Du in einem Verzeichnisauswahldialog.
Grüße
bastla
[Edit] Trennzeichen auf " - " geändert. [/Edit]
Ich mag es ja noch immer nicht wahrhaben, dass die Übergabe eines Pfades nicht klappt, daher vielleicht folgende Variante:
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count >=1 Then
If fso.FolderExists(WScript.Arguments(0)) Then BasisPfad = WScript.Arguments(0)
End If
If BasisPfad = "" Then
Set Verzeichnis = CreateObject("Shell.Application") _
.BrowseForFolder(0, "Datei oder Verzeichnis wählen", 0, 17)
If TypeName(Verzeichnis) = "Nothing" Then WScript.Quit(1)
Set Basis = Verzeichnis.Self
BasisPfad = Basis.Path
End If
For Each Datei In fso.GetFolder(BasisPfad).Files
If Right(Datei.Name, 4) = ".m3u" Then
Ordner = Split(Left(Datei.Name, Len(Datei.Name) - 4), " - ")
Pfad = BasisPfad
For i = 0 To UBound(Ordner)
Pfad = Pfad & "\" & Trim(Ordner(i))
If Not fso.FolderExists(Pfad) Then fso.CreateFolder(Pfad)
Next
Datei.Move Pfad & "\"
End If
Next
WScript.Echo "Fertig."
Grüße
bastla
[Edit] Trennzeichen auf " - " geändert. [/Edit]
Hallo robcomboy!
"Feld" definieren ist bei VBS so eine Sache für sich, da nur in Ansätzen eine GUI vorhanden ist (für Eingaben zB eine InputBox() oder eben ein Dialog wie die Ordnerauswahl). Umso mehr stört mich, dass die Übergabe von Argumenten bei Dir nicht funktioniert.
Für den Dateityp wird's eine InputBox tun (müssen) - daher Endfassung:
Wenn übrigens sichergestellt ist, dass die Trennung immer in der Form " - ", also jeweils mit Leerstellen vor und hinter dem "-", erfolgt, könnte man dies in der Zeile "Ordner = ..." für das Splitten berücksichtigen - dadurch wären dann auch Namen mit enthaltenem "-" korrekt zu verarbeiten ...
Offen bleibt noch zumindest eine Fehlerbehandlung bei bereits existierenden Dateien im Zielverzeichnis.
Grüße
bastla
"Feld" definieren ist bei VBS so eine Sache für sich, da nur in Ansätzen eine GUI vorhanden ist (für Eingaben zB eine InputBox() oder eben ein Dialog wie die Ordnerauswahl). Umso mehr stört mich, dass die Übergabe von Argumenten bei Dir nicht funktioniert.
Für den Dateityp wird's eine InputBox tun (müssen) - daher Endfassung:
'OrdnerStrukturErzeugen.vbs
'Argumente: [BasisPfad] [DateiTyp]
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count >=1 Then
If fso.FolderExists(WScript.Arguments(0)) Then BasisPfad = WScript.Arguments(0)
End If
If BasisPfad = "" Then
Set Verzeichnis = CreateObject("Shell.Application") _
.BrowseForFolder(0, "Datei oder Verzeichnis wählen", 16, 17)
If TypeName(Verzeichnis) = "Nothing" Then WScript.Quit(1)
Set Basis = Verzeichnis.Self
BasisPfad = Basis.Path
End If
If WScript.Arguments.Count >=2 Then
DateiTyp = WScript.Arguments(1)
Else
DateiTyp = InputBox("Gesuchten Dateityp eingeben!", "Typ?", "m3u")
If DateiTyp = "" Then WScript.Quit(1)
End If
DateiTyp = LCase(DateiTyp)
If Left(DateiTyp, 1) <> "." Then DateiTyp = "." & DateiTyp
For Each Datei In fso.GetFolder(BasisPfad).Files
Typ = LCase(Mid(Datei.Name, InstrRev(Datei.Name, ".")))
If Typ = DateiTyp Then
Ordner = Split(Left(Datei.Name, Len(Datei.Name) - Len(Typ)), "-")
Pfad = BasisPfad
For i = 0 To UBound(Ordner)
Pfad = Pfad & "\" & Trim(Ordner(i))
If Not fso.FolderExists(Pfad) Then fso.CreateFolder(Pfad)
Next
Datei.Move Pfad & "\"
End If
Next
WScript.Echo "Fertig."
Offen bleibt noch zumindest eine Fehlerbehandlung bei bereits existierenden Dateien im Zielverzeichnis.
Grüße
bastla
Hallo robcomboy!
Mit "Argumenten" meinte ich "Parameter", also die Übergabe von Pfad und Dateityp beim Aufruf von der Commandline (wird vom Script unterstützt, scheint aber - mir nicht erklärlich - bei Dir nicht zu funktionieren, siehe oben ...).
Hinsichtlich der "-": Ersetze die entsprechende Zeile durch:
In dieser Zeile wird der Dateiname mit der "Split()"-Funktion in Ordnerebenen (Artist\Album\Diskxx) aufgeteilt.
Bereits vorhandene Dateien:
Grüße
bastla
... der heute sicher nix mehr umbenennt ...
Mit "Argumenten" meinte ich "Parameter", also die Übergabe von Pfad und Dateityp beim Aufruf von der Commandline (wird vom Script unterstützt, scheint aber - mir nicht erklärlich - bei Dir nicht zu funktionieren, siehe oben ...).
Hinsichtlich der "-": Ersetze die entsprechende Zeile durch:
Ordner = Split(Left(Datei.Name, Len(Datei.Name) - Len(Typ)), " - ")
Bereits vorhandene Dateien:
Ansatz wäre hier existierenden umzubenennen.
Dazu müsstest Du Dir eine Vorgabe überlegen ...Grüße
bastla
... der heute sicher nix mehr umbenennt ...
Hallo robcomboy, bastla und miniversum,
wenn diese Playlist-Erstellungs-Lösung hier zu Ende ausgefeilt ist, würde ich dann gerne mit Euch gemeinsam je eine Batch und eine VBSkript-Lösung (und meinetwegen noch eine als Kontext-im-Explorer-Lösung als Draufgabe) als Tutorial in den Bereich "Batch & Shell" stellen.
Bitte lasst uns dazu in den nächsten Tagen, wenn hier der letzte Feinschliff fertig ist, mal ein paar PNs austauschen.
Ich sichte mal unterdessen die bereits vorhandenen Lösungen/Antworten bei ähnlichen Playlist-Anforderungen.
Würde mich freuen, wenn es klappt.
@robcomboy
Es heißt definitiv "Batch & Shell", nicht "Bitch & sHell" ..*ggg
Grüsse
Biber
wenn diese Playlist-Erstellungs-Lösung hier zu Ende ausgefeilt ist, würde ich dann gerne mit Euch gemeinsam je eine Batch und eine VBSkript-Lösung (und meinetwegen noch eine als Kontext-im-Explorer-Lösung als Draufgabe) als Tutorial in den Bereich "Batch & Shell" stellen.
Bitte lasst uns dazu in den nächsten Tagen, wenn hier der letzte Feinschliff fertig ist, mal ein paar PNs austauschen.
Ich sichte mal unterdessen die bereits vorhandenen Lösungen/Antworten bei ähnlichen Playlist-Anforderungen.
Würde mich freuen, wenn es klappt.
@robcomboy
Es heißt definitiv "Batch & Shell", nicht "Bitch & sHell" ..*ggg
Grüsse
Biber
So nach ein paar Stunden Schlaf und nem Kaffee hab ich jetzt die Batch zum laufen gebracht und getestet.
Liegt diese im Verzeichnis mit den Playlists werde alle nach einander umgewandelt.
miniversum
@echo off & setlocal enabledelayedexpansion
for /F "delims=" %%a in ('dir /b /A-D *.m3u') do call:dodir "%%a"
goto ende
:dodir
for /F "delims=" %%a in (%1) do set "file=%%~na"
for /F "tokens=1-3 delims=-" %%a in ("%file%") do (
set "myartist=%%a"
set "myalbum=%%b"
set "mytitel=%%c"
md "!myartist:~0,-1!\!myalbum:~1,-1!\!mytitel:~1!"
move %1 "!myartist:~0,-1!\!myalbum:~1,-1!\!mytitel:~1!"
)
goto ende
:ende
miniversum
@echo off & setlocal enabledelayedexpansion
for /F "delims=" %%a in ('dir /b /A-D *.m3u') do call:dodir "%%a"
goto ende
:dodir
for /F "delims=" %%a in (%1) do set "file=%%~na"
for /F "tokens=1-3 delims=-" %%a in ("%file%") do (
set "myartist=%%a"
set "myalbum=%%b"
set "mytitel=%%c"
echo Playlist=[%1]>>Log.txt
echo Artist=[!myartist:~0,-1!]>>Log.txt
echo Album=[!myalbum:~1,-1!]>>Log.txt
echo Titel=[!mytitel:~1!]>>Log.txt
echo.>>Log.txt
md "!myartist:~0,-1!\!myalbum:~1,-1!\!mytitel:~1!"
move %1 "!myartist:~0,-1!\!myalbum:~1,-1!\!mytitel:~1!"
)
goto ende
:ende
Lass diese mal laufen. Dabei wir wird dir eine Datei log.txt erstellt. Poste mal bitte diese log.txt (zumindest auszugsweise)
miniversum
in deinem Eingangsposting meintest du noch das die Playlist ein Format von "test - test1 - test2.m3u" hat also drei Elemente nicht vier wie du sie jetzt getestet hast ("test - test1 - test2 - test3.m3u"). Meine Batch nimmt nur die ersten drei Elemente. Der rest dahinter fällt weg. Oder willst du das ganze jetzt mit vier?
Verwendest du also eine Playlist mit dem Namen "Kopie von test - test1 - test2 - test3 - test4.m3u" werden die Ordner so angelegt:
miniversum
Verwendest du also eine Playlist mit dem Namen "Kopie von test - test1 - test2 - test3 - test4.m3u" werden die Ordner so angelegt:
Kopie von test
test1
test2
test1
test2
miniversum
Hallo robcomboy!
Grüße
bastla
Was wäre, wenn die Playlist so heißen würde:
"Kopie von test - test1 - test2 - test3 - test4.m3u"
Dann hättest du die von Dir vorgegebene Konvention nicht eingehalten und müsstest zunächst einmal festlegen,"Kopie von test - test1 - test2 - test3 - test4.m3u"
- ob daraus 5 Ordnerebenen entstehen sollen (wie es das VB-Script oben machen würde) oder
- welche der Teilbestandteile (nach welchen Kriterien) zusammengefasst werden sollten.
Grüße
bastla
Hallo robcomboy!
Hast Du das schon versucht (vielleicht sogar mit einem Aufruf der folgenden Art)?
Grüße
bastla
Hast Du das schon versucht (vielleicht sogar mit einem Aufruf der folgenden Art)?
OrdnerStrukturErzeugen.vbs D:\StartOrdner m3u
Grüße
bastla
So jetzt mal die kurze Batch Lösung die nur auf " - " reagiert und mehrere Verzeichnistiefen kann:
miniversum
PS: so einfach lass ich das mit dem vbs ja nicht auf mir sitzen hehe
@echo off
for /F "delims=" %%a in ('dir /b /A-D *.m3u') do call:dodir "%%~na"
goto ende
:dodir
set "file=%1"
set fulldir="%file: - =\%"
md %fulldir%
move %1 %fulldir%
goto ende
:ende
miniversum
PS: so einfach lass ich das mit dem vbs ja nicht auf mir sitzen hehe
@miniversum
Das mit dem Ersetzen ist ein gute Idee.
Den Rest würde ich vielleicht eher so schreiben (dann klappt's auch mit dem "move" und mit dazwischengestreuten Leerstellen):
Grüße
bastla
Das mit dem Ersetzen ist ein gute Idee.
Den Rest würde ich vielleicht eher so schreiben (dann klappt's auch mit dem "move" und mit dazwischengestreuten Leerstellen):
@echo off
for /F "delims=" %%a in ('dir /b /A-D *.m3u') do call:dodir "%%a"
goto :eof
:dodir
set "file=%~n1"
set "fulldir=%file: - =\%"
md "%fulldir%"
move %1 "%fulldir%"
Grüße
bastla
Hallo robcomboy,
bastla gab mir sein ok und hat mir noch ein paar tips gegeben...
Hier hast du nun das Script, in dem du jetzt per Abfrage gleich mehrere Trennzeichen definieren kannst + die Dateiendung.
In dem ersten Script sin d die Infos von bastla mit drin - mit "setlocal enabledelayedexpansion"
Ich hatte auch schon versucht das so hinzubiegen, nur hatte ich die ! nicht gesetzt...
Hier nun mein Script ohne delayedexpansion
Beide Batch-Dateien liefern das selbe Ergebnis.
@bastla: Danke für die Korrektur
Grüsse,
wobleibtdiezeit
bastla gab mir sein ok und hat mir noch ein paar tips gegeben...
Hier hast du nun das Script, in dem du jetzt per Abfrage gleich mehrere Trennzeichen definieren kannst + die Dateiendung.
In dem ersten Script sin d die Infos von bastla mit drin - mit "setlocal enabledelayedexpansion"
Ich hatte auch schon versucht das so hinzubiegen, nur hatte ich die ! nicht gesetzt...
@echo off
setlocal enabledelayedexpansion
cls
:abfrageanfang
echo \\\ -I-N-F-O-S- ///
echo -==/==========================================================================-
ECHO .. Angaben zur Dateiendung
echo -==/==========================================================================-
echo.
set /p dateiendung= == Dateiendung mit Punkt angeben:
cls
echo \\\ -I-N-F-O-S- ///
echo -==/==========================================================================-
ECHO .. Angaben zu Trennungszeichen
echo -==/==========================================================================-
echo -==/==========================================================================-
ECHO .. -Trennungszeichen von der laengsten zur kuerzesten Zeichenkette angeben.
ECHO .. -Mit ENTER wird Abfrage abgebrochen und bisherige Eingaben ausgefuehrt.
echo -==/==========================================================================-
echo.
set /p fulldir1_choice= == Trennungszeichen [1/9]:
if "%fulldir1_choice%" == "" goto abfrageende
set /p fulldir2_choice= == Trennungszeichen [2/9]:
if "%fulldir2_choice%" == "" goto abfrageende
set /p fulldir3_choice= == Trennungszeichen [3/9]:
if "%fulldir3_choice%" == "" goto abfrageende
set /p fulldir4_choice= == Trennungszeichen [4/9]:
if "%fulldir4_choice%" == "" goto abfrageende
set /p fulldir5_choice= == Trennungszeichen [5/9]:
if "%fulldir5_choice%" == "" goto abfrageende
set /p fulldir6_choice= == Trennungszeichen [6/9]:
if "%fulldir6_choice%" == "" goto abfrageende
set /p fulldir7_choice= == Trennungszeichen [7/9]:
if "%fulldir7_choice%" == "" goto abfrageende
set /p fulldir8_choice= == Trennungszeichen [8/9]:
if "%fulldir8_choice%" == "" goto abfrageende
set /p fulldir9_choice= == Trennungszeichen [9/9]:
if "%fulldir9_choice%" == "" goto abfrageende
:abgeschlossen
cls
echo.
echo -==/==========================================================================-
ECHO .. Ausfuehrung der Operation
echo -==/==========================================================================-
echo.
echo == Operation abgeschlossen.
echo.
pause
goto :eof
:abfrageende
cls
echo.
echo -==/==========================================================================-
ECHO .. Ausfuehrung der Operation
echo -==/==========================================================================-
echo.
echo == wait...
echo.
if "%fulldir1_choice%" == "" set fulldir1_choice=""
if "%fulldir2_choice%" == "" set fulldir2_choice=""
if "%fulldir3_choice%" == "" set fulldir3_choice=""
if "%fulldir4_choice%" == "" set fulldir4_choice=""
if "%fulldir5_choice%" == "" set fulldir5_choice=""
if "%fulldir6_choice%" == "" set fulldir6_choice=""
if "%fulldir7_choice%" == "" set fulldir7_choice=""
if "%fulldir8_choice%" == "" set fulldir8_choice=""
if "%fulldir9_choice%" == "" set fulldir9_choice=""
for /F "delims=" %%a in ('dir /b /A-D *%dateiendung%') do call:dodir "%%a"
goto :abgeschlossen
:dodir
set "fulldir0=%~n1"
set "fulldir1=!fulldir0:%fulldir1_choice%=\!"
set "fulldir2=%fulldir1%"
set "fulldir2=!fulldir1:%fulldir2_choice%=\!"
set "fulldir3=%fulldir2%"
set "fulldir3=!fulldir2:%fulldir3_choice%=\!"
set "fulldir4=%fulldir3%"
set "fulldir4=!fulldir3:%fulldir4_choice%=\!"
set "fulldir5=%fulldir4%"
set "fulldir5=!fulldir4:%fulldir5_choice%=\!"
set "fulldir6=%fulldir5%"
set "fulldir6=!fulldir5:%fulldir6_choice%=\!"
set "fulldir7=%fulldir6%"
set "fulldir7=!fulldir6:%fulldir7_choice%=\!"
set "fulldir8=%fulldir7%%"
set "fulldir8=!fulldir7:%fulldir8_choice%=\!"
set "fulldir9=%fulldir8%"
set "fulldir9=!fulldir8:%fulldir9_choice%=\!"
md "%fulldir9%"
move %1 "%fulldir9%"
:eof
Hier nun mein Script ohne delayedexpansion
@echo off
cls
:abfrageanfang
echo \\\ -I-N-F-O-S- ///
echo -==/==========================================================================-
ECHO .. Angaben zur Dateiendung
echo -==/==========================================================================-
echo.
set /p dateiendung= == Dateiendung mit Punkt angeben:
cls
echo \\\ -I-N-F-O-S- ///
echo -==/==========================================================================-
ECHO .. Angaben zu Trennungszeichen
echo -==/==========================================================================-
echo -==/==========================================================================-
ECHO .. -Trennungszeichen von der laengsten zur kuerzesten Zeichenkette angeben.
ECHO .. -Mit ENTER wird Abfrage abgebrochen und bisherige Eingaben ausgefuehrt.
echo -==/==========================================================================-
echo.
set /p fulldir1_choice= == Trennungszeichen [1/9]:
if "%fulldir1_choice%" == "" goto abfrageende
set /p fulldir2_choice= == Trennungszeichen [2/9]:
if "%fulldir2_choice%" == "" goto abfrageende
set /p fulldir3_choice= == Trennungszeichen [3/9]:
if "%fulldir3_choice%" == "" goto abfrageende
set /p fulldir4_choice= == Trennungszeichen [4/9]:
if "%fulldir4_choice%" == "" goto abfrageende
set /p fulldir5_choice= == Trennungszeichen [5/9]:
if "%fulldir5_choice%" == "" goto abfrageende
set /p fulldir6_choice= == Trennungszeichen [6/9]:
if "%fulldir6_choice%" == "" goto abfrageende
set /p fulldir7_choice= == Trennungszeichen [7/9]:
if "%fulldir7_choice%" == "" goto abfrageende
set /p fulldir8_choice= == Trennungszeichen [8/9]:
if "%fulldir8_choice%" == "" goto abfrageende
set /p fulldir9_choice= == Trennungszeichen [9/9]:
if "%fulldir9_choice%" == "" goto abfrageende
:abfrageende
cls
echo.
echo -==/==========================================================================-
ECHO .. Ausfuehrung der Operation
echo -==/==========================================================================-
echo.
echo == wait...
echo.
if "%fulldir1_choice%" == "" set fulldir1_choice=""
if "%fulldir2_choice%" == "" set fulldir2_choice=""
if "%fulldir3_choice%" == "" set fulldir3_choice=""
if "%fulldir4_choice%" == "" set fulldir4_choice=""
if "%fulldir5_choice%" == "" set fulldir5_choice=""
if "%fulldir6_choice%" == "" set fulldir6_choice=""
if "%fulldir7_choice%" == "" set fulldir7_choice=""
if "%fulldir8_choice%" == "" set fulldir8_choice=""
if "%fulldir9_choice%" == "" set fulldir9_choice=""
:: ---
set ordnerstruktur_var=Ordnerstruktur.aus.Dateinamen.erstellen_exec.bat
del /f /q %ordnerstruktur_var% 2>Nul
echo @echo off>%ordnerstruktur_var%
echo cls>>%ordnerstruktur_var%
echo for /F "delims=" %%%%a in ('dir /b /A-D *%dateiendung%') do call:dodir "%%%%a">>%ordnerstruktur_var%
echo exit>>%ordnerstruktur_var%
echo :dodir>>%ordnerstruktur_var%
echo set "fulldir0=%%~n1">>%ordnerstruktur_var%
echo set "fulldir1=%%fulldir0:%fulldir1_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir2=%%fulldir1%%">>%ordnerstruktur_var%
echo set "fulldir2=%%fulldir1:%fulldir2_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir3=%%fulldir2%%">>%ordnerstruktur_var%
echo set "fulldir3=%%fulldir2:%fulldir3_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir4=%%fulldir3%%">>%ordnerstruktur_var%
echo set "fulldir4=%%fulldir3:%fulldir4_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir5=%%fulldir4%%">>%ordnerstruktur_var%
echo set "fulldir5=%%fulldir4:%fulldir5_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir6=%%fulldir5%%">>%ordnerstruktur_var%
echo set "fulldir6=%%fulldir5:%fulldir6_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir7=%%fulldir6%%">>%ordnerstruktur_var%
echo set "fulldir7=%%fulldir6:%fulldir7_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir8=%%fulldir7%%">>%ordnerstruktur_var%
echo set "fulldir8=%%fulldir7:%fulldir8_choice%=\%%">>%ordnerstruktur_var%
echo set "fulldir9=%%fulldir8%%">>%ordnerstruktur_var%
echo set "fulldir9=%%fulldir8:%fulldir9_choice%=\%%">>%ordnerstruktur_var%
echo :dodirend>>%ordnerstruktur_var%
echo md "%%fulldir9%%">>%ordnerstruktur_var%
echo move %%1 "%%fulldir9%%">>%ordnerstruktur_var%
start /B /wait %ordnerstruktur_var%
:: ---
del /f /q %ordnerstruktur_var% 2>Nul
cls
echo.
echo -==/==========================================================================-
ECHO .. Ausfuehrung der Operation
echo -==/==========================================================================-
echo.
echo == Operation abgeschlossen.
echo.
pause
:: ---
:eof
Beide Batch-Dateien liefern das selbe Ergebnis.
@bastla: Danke für die Korrektur
Grüsse,
wobleibtdiezeit
Moin, wobleibtdiezeit,
schön, dass Du auch mitmischt...
@all
Wenn ich so den Lösungsfortschritt richtig einschätze, könnten wir wohl spätestens nächste Woche mal das Beste der vorangegangenen 114cm zu einem Tutorial zusammendampfen?
Oder sind etwa Perfektionisten an Bo(a)rd, die noch Verbesserungswünsche haben?
Gruss
Biber
schön, dass Du auch mitmischt...
@all
Wenn ich so den Lösungsfortschritt richtig einschätze, könnten wir wohl spätestens nächste Woche mal das Beste der vorangegangenen 114cm zu einem Tutorial zusammendampfen?
Oder sind etwa Perfektionisten an Bo(a)rd, die noch Verbesserungswünsche haben?
Gruss
Biber
@bastla
Nein, ist auch bei mir nicht reprozierbar... *ratlos guck*
@robcomboy
Du hast auch nicht zufällig die Ursache inzwischen gefunden?
Gruss
Biber
Nein, ist auch bei mir nicht reprozierbar... *ratlos guck*
@robcomboy
Du hast auch nicht zufällig die Ursache inzwischen gefunden?
Gruss
Biber
Hallo robcomboy!
Das ist schade, denn ich muss ja mit den Batchern mithalten und habe das Script noch ein wenig aufgebohrt:
Jetzt würde das Script folgenden Aufruf erlauben:
Getrennt würde dann bei " - ", bei "#" und bei "_".
Die selbe Eingabe (ohne die Anführungszeichen) kann aber auch über eine weitere InputBox erfolgen, so dass Du (etwas mühsamer) trotzdem testen kannst (wenn Du magst).
Das Trennen der Trennzeichen mit ":" hat übrigens den Hintergrund, dass ein Dateiname ja ohnehin keinen ":" enthalten sollte (ja, ich habe schon gerüchteweise von NTFS ADS gehört) - es kann aber in der Zeile
auch ein anderes Zeichen festgelegt werden.
Grüße
bastla
Das ist schade, denn ich muss ja mit den Batchern mithalten und habe das Script noch ein wenig aufgebohrt:
'MacheOrdner.vbs
'Argumente: [BasisPfad] [[.]DateiTyp] [Suchstring[:Suchstring]]
Const DD = ":"
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count >=1 Then
If fso.FolderExists(WScript.Arguments(0)) Then BasisPfad = WScript.Arguments(0)
End If
If BasisPfad = "" Then
Set Verzeichnis = CreateObject("Shell.Application") _
.BrowseForFolder(0, "Datei oder Verzeichnis wählen", 16, 17)
If TypeName(Verzeichnis) = "Nothing" Then WScript.Quit(1)
Set Basis = Verzeichnis.Self
BasisPfad = Basis.Path
End If
If WScript.Arguments.Count >=2 Then
DateiTyp = WScript.Arguments(1)
Else
DateiTyp = InputBox("Gesuchten Dateityp eingeben!", "Typ?", "m3u")
If DateiTyp = "" Then WScript.Quit(1)
End If
If WScript.Arguments.Count >=3 Then
Delims = WScript.Arguments(2)
Else
Delims = InputBox("Alle gewünschten Trennzeichen mit '" & DD & "' unterteilt eingeben!", "Trennzeichen?")
If Delims = "" Then WScript.Quit(1)
End If
Trenn=Split(Delims, DD)
DateiTyp = LCase(DateiTyp)
If Left(DateiTyp, 1) <> "." Then DateiTyp = "." & DateiTyp
For Each Datei In fso.GetFolder(BasisPfad).Files
Typ = LCase(Mid(Datei.Name, InstrRev(Datei.Name, ".")))
If Typ = DateiTyp Then
DName = Left(Datei.Name, Len(Datei.Name) - Len(Typ))
For i = 0 To UBound(Trenn)
DName = Replace(DName, Trenn(i), DD)
Next
DName = Replace(DName, DD & DD, DD)
Ordner = Split(DName, DD)
Pfad = BasisPfad
For i = 0 To UBound(Ordner)
Pfad = Pfad & "\" & Trim(Ordner(i))
If Not fso.FolderExists(Pfad) Then fso.CreateFolder(Pfad)
Next
Datei.Move Pfad & "\"
End If
Next
WScript.Echo "Fertig."
MacheOrdner.vbs "D:\Musik und so" .m3u " - :#:_"
Die selbe Eingabe (ohne die Anführungszeichen) kann aber auch über eine weitere InputBox erfolgen, so dass Du (etwas mühsamer) trotzdem testen kannst (wenn Du magst).
Das Trennen der Trennzeichen mit ":" hat übrigens den Hintergrund, dass ein Dateiname ja ohnehin keinen ":" enthalten sollte (ja, ich habe schon gerüchteweise von NTFS ADS gehört) - es kann aber in der Zeile
Const DD = ":"
Grüße
bastla
Tach,
mit diesen zwei Zeilen am Anfang der Batch ist die Batch Sendto fähig.
cd %~dp1
%~d1
@robocom: jede Batch einzeln in FileMenu Tools einzubinden wäre ein riesiger zeitaufwand der nicht nötig ist. Mach dir einen Hardlink für den Sendto Ordner - wie hier beschrieben...
Senden an im Kontextmenü verändern Kinderleicht (Win 98)
... von deinem Ordner in dem du alle Batch-Dateien aufbewahrst. Jede Batch-Datei die diese zwei zeilen vorher stehen hat wird dann auch über das Sentto-Menü lauffähig sein.
Kleiner Nebeneffekt: du kannst jetzt neben den Ordnern auch Dateien direkt auf die Batch-Datei ziehen.
Grüsse,
wobleibtdiezeit
mit diesen zwei Zeilen am Anfang der Batch ist die Batch Sendto fähig.
cd %~dp1
%~d1
@robocom: jede Batch einzeln in FileMenu Tools einzubinden wäre ein riesiger zeitaufwand der nicht nötig ist. Mach dir einen Hardlink für den Sendto Ordner - wie hier beschrieben...
Senden an im Kontextmenü verändern Kinderleicht (Win 98)
... von deinem Ordner in dem du alle Batch-Dateien aufbewahrst. Jede Batch-Datei die diese zwei zeilen vorher stehen hat wird dann auch über das Sentto-Menü lauffähig sein.
Kleiner Nebeneffekt: du kannst jetzt neben den Ordnern auch Dateien direkt auf die Batch-Datei ziehen.
@echo off
cd %~dp1
%~d1
pushd %1
for /F "delims=" %%a in ('dir /b /A-D *.m3u') do call:dodir "%%a"
popd
goto :ende
:dodir
set "file=%~n1"
set "fulldir=%file: - =\%"
md "%fulldir%"
move %1 "%fulldir%"
goto :ende
:ende
Grüsse,
wobleibtdiezeit
Nabend,
-Verbesserungen aus den letzten Posts + weiteren Sachen sind in die Batch eingeflossen...
-Man kann nun wie in der Eingabeaufforderung Zeichen eingrenzen. Dritte, die damit vielleicht nix anzufangen weissen, stehen jetzt ein paar Beispiele in der Batch zur Seite.
Grüsse,
wobleibtdiezeit
-Verbesserungen aus den letzten Posts + weiteren Sachen sind in die Batch eingeflossen...
-Man kann nun wie in der Eingabeaufforderung Zeichen eingrenzen. Dritte, die damit vielleicht nix anzufangen weissen, stehen jetzt ein paar Beispiele in der Batch zur Seite.
@echo off
setlocal enabledelayedexpansion
cls
cd /d %~dp1
:abfrageanfang
echo \\\ -I-N-F-O-S- ///
echo -==/==========================================================================-
ECHO .. Angaben zu Zeichen in Datei(en)
echo -==/==========================================================================-
echo -==/==========================================================================-
ECHO .. -Beispiel fuer eine Dateieindung: *.m3u
ECHO .. -Beispiel fuer mehrere Dateieindungen: *.m3u *.mp3 *.txt
ECHO .. -Beispiel fuer ein Zeichen aus Dateinamen: *nelly*
ECHO .. -Beispiel fuer mehrere Zeichen aus Dateinamen: *nelly* *timbaland*
ECHO .. -Beispiel fuer Kombination aus Beispielen: *nelly*.mp3 *timbaland*.m3u
echo -==/==========================================================================-
echo.
set /p zeichenausdatei= == Zeichen in Datei(en) angeben:
cls
echo \\\ -I-N-F-O-S- ///
echo -==/==========================================================================-
ECHO .. Angaben zu Trennungszeichen in Dateinamen
echo -==/==========================================================================-
echo -==/==========================================================================-
ECHO .. -Trennungszeichen von der laengsten zur kuerzesten Zeichenkette angeben.
ECHO -Beispiel fuer Trennzeichen:
echo "Nelly.Furtado.-.Loose_Promiscuous.mp3"
echo "Nelly.Furtado.-.Loose_Say.It.Right.mp3"
echo == Trennungszeichen [1/9]: .-.
echo == Trennungszeichen [2/9]: _
ECHO .. -Mit ENTER wird Abfrage abgebrochen und bisherige Eingaben ausgefuehrt.
echo -==/==========================================================================-
echo.
set /p fulldir1_choice= == Trennungszeichen [1/9]:
if "%fulldir1_choice%" == "" goto abfrageende
set /p fulldir2_choice= == Trennungszeichen [2/9]:
if "%fulldir2_choice%" == "" goto abfrageende
set /p fulldir3_choice= == Trennungszeichen [3/9]:
if "%fulldir3_choice%" == "" goto abfrageende
set /p fulldir4_choice= == Trennungszeichen [4/9]:
if "%fulldir4_choice%" == "" goto abfrageende
set /p fulldir5_choice= == Trennungszeichen [5/9]:
if "%fulldir5_choice%" == "" goto abfrageende
set /p fulldir6_choice= == Trennungszeichen [6/9]:
if "%fulldir6_choice%" == "" goto abfrageende
set /p fulldir7_choice= == Trennungszeichen [7/9]:
if "%fulldir7_choice%" == "" goto abfrageende
set /p fulldir8_choice= == Trennungszeichen [8/9]:
if "%fulldir8_choice%" == "" goto abfrageende
set /p fulldir9_choice= == Trennungszeichen [9/9]:
if "%fulldir9_choice%" == "" goto abfrageende
:abgeschlossen
cls
echo.
echo -==/==========================================================================-
ECHO .. Ausfuehrung der Operation
echo -==/==========================================================================-
echo.
echo == Operation abgeschlossen.
echo.
pause
goto :eof
:abfrageende
cls
echo.
echo -==/==========================================================================-
ECHO .. Ausfuehrung der Operation
echo -==/==========================================================================-
echo.
echo == wait...
echo.
if "%fulldir1_choice%" == "" set fulldir1_choice=""
if "%fulldir2_choice%" == "" set fulldir2_choice=""
if "%fulldir3_choice%" == "" set fulldir3_choice=""
if "%fulldir4_choice%" == "" set fulldir4_choice=""
if "%fulldir5_choice%" == "" set fulldir5_choice=""
if "%fulldir6_choice%" == "" set fulldir6_choice=""
if "%fulldir7_choice%" == "" set fulldir7_choice=""
if "%fulldir8_choice%" == "" set fulldir8_choice=""
if "%fulldir9_choice%" == "" set fulldir9_choice=""
pushd %1
for /F "delims=" %%a in ('dir /b /A-D %zeichenausdatei%') do call:dodir "%%a"
popd
goto :abgeschlossen
:dodir
set "fulldir0=%~n1"
set "fulldir1=!fulldir0:%fulldir1_choice%=\!"
set "fulldir2=%fulldir1%"
set "fulldir2=!fulldir1:%fulldir2_choice%=\!"
set "fulldir3=%fulldir2%"
set "fulldir3=!fulldir2:%fulldir3_choice%=\!"
set "fulldir4=%fulldir3%"
set "fulldir4=!fulldir3:%fulldir4_choice%=\!"
set "fulldir5=%fulldir4%"
set "fulldir5=!fulldir4:%fulldir5_choice%=\!"
set "fulldir6=%fulldir5%"
set "fulldir6=!fulldir5:%fulldir6_choice%=\!"
set "fulldir7=%fulldir6%"
set "fulldir7=!fulldir6:%fulldir7_choice%=\!"
set "fulldir8=%fulldir7%%"
set "fulldir8=!fulldir7:%fulldir8_choice%=\!"
set "fulldir9=%fulldir8%"
set "fulldir9=!fulldir8:%fulldir9_choice%=\!"
md "%fulldir9%"
move %1 "%fulldir9%"
:eof
Grüsse,
wobleibtdiezeit
ACHTUNG GEFÄHRLICH!!!
Was ist der Unterschied von pushd %~dp1 zu pushd %1??
In diesem Fall gehe ich persönlich davon aus dasein Verzeichnis drauf gezogen wird. Dadurch brauche ich diesen ~dp Teil doch garnicht. Im Gegenteil ich bekomme sogar einen Fehler dadurch weil ein Verzeichnis namens "C:\verzeischnis\verzeichnis2" das ich daraufziehe bei einem %1 als "C:\verzeischnis\verzeichnis2" übernommen wird. Bei einem %~dp1 wird hingegen nur das "C:\verzeischnis" übernommen, der Teil "verzeichnis2" würde als Dateiname übernommen.
Hier zum Testen:
miniversum
Was ist der Unterschied von pushd %~dp1 zu pushd %1??
In diesem Fall gehe ich persönlich davon aus dasein Verzeichnis drauf gezogen wird. Dadurch brauche ich diesen ~dp Teil doch garnicht. Im Gegenteil ich bekomme sogar einen Fehler dadurch weil ein Verzeichnis namens "C:\verzeischnis\verzeichnis2" das ich daraufziehe bei einem %1 als "C:\verzeischnis\verzeichnis2" übernommen wird. Bei einem %~dp1 wird hingegen nur das "C:\verzeischnis" übernommen, der Teil "verzeichnis2" würde als Dateiname übernommen.
Hier zum Testen:
@echo off
echo mit %%1: [%1]
echo mit %%^~dp1: [%~dp1]
echo mit %%^~n1: [%~n1]
echo mit %%^~x1: [%~x1]
pause
miniversum
Hallo robcomboy!
Diese Version unterstützt mehrere Extensions:
Eine "echte" GUI (also etwa mit Check- oder Comboboxen) lässt sich für VBS eigentlich nur über den Umweg "Internet Explorer" simulieren, wovon ich eher Abstand nehmen möchte - als (vielleicht schwacher) Kompromiss bliebe die Variante, in der InputBox mehrere Vorgaben zu machen, wobei die nicht benötigten dann zu löschen wären (im Script oben gezeigt für die Trennzeichen).
Was das Wegsortieren nach Dateitypen mit Anhängen des Datums anlangt, würde ich eher ein weiteres Spezialscript dafür verwenden - es muss ja nicht unbedingt eine an Featuritis erkrankte eierlegende WMS aus diesem kleinen Projekt hier werden ...
Grüße
bastla
Diese Version unterstützt mehrere Extensions:
'MacheOrdner2.vbs
'Argumente: [BasisPfad] [[.]DateiTyp[ [.]DateiTyp]] [Suchstring[:Suchstring]]
Const DD = ":"
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count >=1 Then
If fso.FolderExists(WScript.Arguments(0)) Then BasisPfad = WScript.Arguments(0)
End If
If BasisPfad = "" Then
Set Verzeichnis = CreateObject("Shell.Application") _
.BrowseForFolder(0, "Datei oder Verzeichnis wählen", 16, 17)
If TypeName(Verzeichnis) = "Nothing" Then WScript.Quit(1)
Set Basis = Verzeichnis.Self
BasisPfad = Basis.Path
End If
If WScript.Arguments.Count >=2 Then
DateiTyp = WScript.Arguments(1)
Else
DateiTyp = InputBox("Gesuchten Dateityp eingeben," & vbCrLF & "mehrere Typen durch Leerstellen trennen!", "Typ?", "m3u")
If DateiTyp = "" Then WScript.Quit(1)
End If
If WScript.Arguments.Count >=3 Then
Delims = WScript.Arguments(2)
Else
Delims = InputBox("Alle gewünschten Trennzeichen mit '" & DD & "' unterteilt eingeben!", "Trennzeichen?", " - :#:_")
If Delims = "" Then WScript.Quit(1)
End If
Trenn = Split(Delims, DD)
DateiTyp = LCase(DateiTyp)
For Each Datei In fso.GetFolder(BasisPfad).Files
Typ = LCase(Mid(Datei.Name, InstrRev(Datei.Name, ".") + 1))
If Instr(DateiTyp, Typ) Then
DName = Left(Datei.Name, Len(Datei.Name) - Len(Typ))
For i = 0 To UBound(Trenn)
DName = Replace(DName, Trenn(i), DD)
Next
DName = Replace(DName, DD & DD, DD)
Ordner = Split(DName, DD)
Pfad = BasisPfad
For i = 0 To UBound(Ordner)
Pfad = Pfad & "\" & Trim(Ordner(i))
If Not fso.FolderExists(Pfad) Then fso.CreateFolder(Pfad)
Next
Datei.Move Pfad & "\"
End If
Next
WScript.Echo "Fertig."
Eine "echte" GUI (also etwa mit Check- oder Comboboxen) lässt sich für VBS eigentlich nur über den Umweg "Internet Explorer" simulieren, wovon ich eher Abstand nehmen möchte - als (vielleicht schwacher) Kompromiss bliebe die Variante, in der InputBox mehrere Vorgaben zu machen, wobei die nicht benötigten dann zu löschen wären (im Script oben gezeigt für die Trennzeichen).
Was das Wegsortieren nach Dateitypen mit Anhängen des Datums anlangt, würde ich eher ein weiteres Spezialscript dafür verwenden - es muss ja nicht unbedingt eine an Featuritis erkrankte eierlegende WMS aus diesem kleinen Projekt hier werden ...
Grüße
bastla
Hallo miniversum,
könntest du mir kurz erklären warum du bei der ausgabe "%%^~x1" geschrieben hast und nicht "%%~x1". Bei mir wird es so nämlich auch korrekt angezeigt. Was hat das Zeichen eigendlich für eine Bedeutung ?
Grüsse,
wbdz
könntest du mir kurz erklären warum du bei der ausgabe "%%^~x1" geschrieben hast und nicht "%%~x1". Bei mir wird es so nämlich auch korrekt angezeigt. Was hat das Zeichen eigendlich für eine Bedeutung ?
Grüsse,
wbdz
@miniversum
Und falls es vielleicht doch kein Verzeichnis sein sollte:
Grüße
bastla
Und falls es vielleicht doch kein Verzeichnis sein sollte:
if exist "%~1\" (
pushd %1
) else (
pushd "%~dp1"
)
Grüße
bastla
Hallo,
ich habe ein paar Comments bekommen, in denen stand aus welchen Gründen meine Batch nutzlos ist.... Nun gut ich habe es eingesehen und mich entschieden die Batch zu löschen.
Sorry, wenn ich hier Blödsinn verbreitet habe...
Grüsse,
wbdz
ich habe ein paar Comments bekommen, in denen stand aus welchen Gründen meine Batch nutzlos ist.... Nun gut ich habe es eingesehen und mich entschieden die Batch zu löschen.
Sorry, wenn ich hier Blödsinn verbreitet habe...
Grüsse,
wbdz