Hi,
wie der Titel schon sagt, suche ich nach einem Programm (oder evtl. geht das ja auch mit einer Batch), dass mir Ordner erstellt, mit dem Dateinamen und die Datei dann auch in diesen erstellten Ordner verschiebt.
Also so z.B.
Dateiname: Blubbakrawumm.wav
Ordnername: Blubbakrawumm (dieser Ordner wird erstellt, da die .wav ja so heißt)
und dann wird die .wav automatisch in diesen erstellten Ordner verschoben.
Da kann ich ja eine kürzere Variante aus dem hier reinkopieren:
Code:
@echo off
chcp 1252
setlocal enableextensions disabledelayedexpansion
FOR /f "tokens=*" %%G IN ('dir /b') DO (call :subroutine "%%G")
echo Alles erledigt
exit /b 0
:subroutine
For %%A in (%1) do (
Set Folder=%%~dpA
Set FullName=%%~nxA
Set Name=%%~nA
Set Extension=%%~xA
)
if exist "%FullName%\*" (
echo Überspringe Ordner "%FullName%"
exit /b 0
) else (
if "%Extension%"==".bat" (
echo Überspringe Batchdatei "%FullName%"
exit /b 0
)
)
if not exist "%Name%" (
mkdir "%Name%"
)
move "%FullName%" "%Name%"
exit /b 0
Die Datei muss als ANSI gespeichert werden.
Das Batch-Skript funktioniert grundsätzlich, hat aber Probleme mit fremden Schriftsätzen (deutsche Umlaute gehen aber). Deshalb würde ich in der heutigen Zeit auch eine Variante in PowerShell empfehlen, kann dafür aber keine Zeilen liefern.
for /F "tokens=*" %%y in ('dir /B /A-D') do ( set z=%%y if not "!z!"=="#dir.bat" md "!z:~0,-4!" if not "!z!"=="#dir.bat" move "!Z!" .\"!z:~0,-4!" >nul )
Diese paar Zeilen machen auch sowas.
Die Batchdatei muss #dir.bat heißen und muss in das zu bearbeitende Verzeichnis kopiert werden.
#!/bin/sh for file in *.* do dir="${file%.*}" mkdir -p "$dir" mv "$file" "$dir" done
Auch hier gilt: Die ausführbare Shellskript-Datei in das zu bearbeitende Verzeichnis kopieren. Am besten einen prägnanten Namen geben, da diese ebenfalls in ein gleichnamiges Verzeichnis verschoben wird.
Mit Kommentare
PHP-Code:
#!/bin/sh for file in *.* # Alle Dateien vom Verzeichnis werden eingelesen do dir="${file%.*}" # Die Namen für die jeweiligen Verzeichnisse werden erfasst mkdir -p "$dir" # Falls sie noch nicht existieren, werden neue Verzeichnisse nach den Dateinamen erstellt mv "$file" "$dir" # Die Dateien werden in die gleichnamigen Verzeichnisse verschoben done