cgboard - classic games

Normale Version: Ordner nach Dateinamen erstellen und automatisch verschieben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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.

Vielen Dank für jede Hilfe. Yeah
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.
Hi,

off
setlocal EnableDelayedExpansion

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.
Unter Linux:
PHP-Code:
#!/bin/sh
for file in *.*
do
    dir="${file%.*}"
    mkdir -"$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 -"$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 
: Mein Held ^^. Ich danke dir für deine Hilfe, wie schon in der Vergangenheit Smile

: Aber auch euch ein herzliches Dankeschön für die Tipps und Hilfen.
Hi,



bitte gerne.

Ich hoffe es genügt auch so.


Ist nur eine Schleife mit der DIR Abfrage, nur Dateinamen ohne Verzeichnisse werden "angezeigt".

Alles was nicht wie die Startbatch heißt wird in ein gleichnamiges, erstelltes Verzeichnis verschoben.