Ordnersystem mit Script erstellen

Therul

Cadet 3rd Year
Registriert
Okt. 2006
Beiträge
39
Hallo Leute

Ich habe eine relativ einfache Aufgabe vor mir, und dazu ein paar Fragen.

Ich soll knapp 800-1000 Fotos weiterverarbeiten. Diese habe ich jetzt einfach alle in einem Ordner bekommen. Damit ich die bearbeiteten dann wieder hochladen kann müssen die Dateien, dazu eine gewisse, wenn auch simpelste, Ordnerstruktur haben.
Jede Datei soll einen eigenen Ordner haben, der auch den Namen der jeweiligen Datei hat.

Jetzt wäre es, wenn man es händisch machen würde, einmal viel und umständlich, nur werde ich das, wenn ich es jetzt mache, in Zukunft öfter tun müssen. Also keine so reizenden Aussichten.

Ein Freund, riet mir Scripts anzuschauen, und jetzt nach einigen Tutorialvideos, denke ich es müsste auch diesem Wege möglich sein.

Die Arbeitsschritte würde wohl so aussehen:
Wähle einen Ordner aus -> Nimm dir die erste Datei -> erstelle einen Ordner mit dem Namen dieser Datei -> verschiebe die Datei in den neuen Ordner -> arbeite den Hauptordner ab.

Ist dies so möglich beziehungsweise umsetzbar, und wenn ja, wie?

Hier in der Arbeit arbeite ich mit Macs, deswegen dieses Unterforum, mit dem AppleScript Editor, hab ich mich schon ein bisschen gespielt.

Für jedwede Hilfe, bedanke ich mich herzlich im vorraus.

Therul
 
Das hörte sich so einfach an, bis du erwähnt hast, das du nen Apple besitzt... ;)

Hätte dir zu Powershell geraten, aber ob das überhaupt unter Mac läuft, bin ich mir garnicht sicher... Wäre nen Scriptaufwand von 5-8 Zeilen Grob geraten...


Zufällig nen Windows da rumfliegen? :) Dann könnte ich dir weiterhelfen...
 
Ja hab ich das wär kein Problem, ich nehme einfach meinen Laptop mit.

Die Mac Lösung wär für den Chef halt interessant, aber erstmal ist es wichtig, dass es überhaupt machbar ist.

und danke für die schnelle Antwort. ;)
 
In Powershell ist das total einfach umsetzbar... Müsstest eben nur die Liste der Datein Auslesen. Dann für jede Datei (Foreach) den Namen auslesen der Datei, dann Pipe (|) und für diesen Namen einen Ordner erstellen mit dem Namen, den du ausgelesen hast. Dann kopierste die Datei in diesen Ordner. Fertig. Sollte nicht wirklich der Aufwand sein, kanns auch schnell umsetzen wenn du möchtest. Muss hier nur nebenbei noch etwas machen ;)
 
Prinzipiell kannst das mit jeder script sprache machen
welche dir halt am besten gefällt
z.B. python, ruby,... von mir aus auch in PHP :-)
 
Also bei meinem Laptop kann ich alles machen, vorrausgesetzt ich schaffe es. :cool_alt:
 
Code:
for %%a in (*.jpg) do mkdir "%%~na"
for %%a in (*.jpg) do move "%%a" "%%~na"

So könnts aussehen.
 
@ Malock
Das wär super

@
gaym0r
Danke, aber wo kann ich das jetzt anwenden?
 
Ah ok, doch habe ich, aber nur erst am Abend daheim.

Und da öffne ich dann nur diese Powershell und wende den Code an?
 
Das von gaym0r ist Batch.

Mit Powershell könntest du das z.B. so machen:

Code:
$files = Get-ChildItem -File

$files | ForEach-Object {

	New-Item -Type directory $_.Basename
	
	Move-Item $_.Name -Destination $_.Basename
	
}

Die Zeilen einfach in eine .ps1 - Datei, diese in das Verzeichnis mit den Bildern kopieren und ausführen (rechtsklick und "Mit Powershell ausführen")...
 
sal099 schrieb:
Das von gaym0r ist Batch.

Mit Powershell könntest du das z.B. so machen:

Code:
$files = Get-ChildItem -File

$files | ForEach-Object {

	New-Item -Type directory $_.Basename
	
	Move-Item $_.Name -Destination $_.Basename
	
}

Die Zeilen einfach in eine .ps1 - Datei, diese in das Verzeichnis mit den Bildern kopieren und ausführen (rechtsklick und "Mit Powershell ausführen")...

Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen "File" entspricht.
Bei Zeile:1 Zeichen:33

Das "-File" muss weggelassen werden.
 
Wo ist jetzt das Problem so etwas mit dem Automator zu machen?
 
Im Automator gibt es bestimmt eine Funktion dafür. Da gibt es zahlreiche Befehle die man einfach aneinander Reihen kann. Komme grad leider nicht an meinen Mac aber das sollte wenn die einfachste Lösung sein.
 
gaym0r schrieb:
Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen "File" entspricht.
Bei Zeile:1 Zeichen:33

Das "-File" muss weggelassen werden.

Ich habe bei mir Powershell 3.0 installiert... mit 2.0 funktioniert das nicht... Wußte ich auch nicht.

Man muss auch nicht den Umweg über $files gehen und kann das Ganze noch ein wenig schöner machen:

Code:
Get-ChildItem -File | ForEach-Object { New-Item -Type directory $_.Basename; Move-Item $_.Name -Destination $_.Basename }
 
Danke noch mal für die schnellen Antworten.

@sal099

Ich habe deinen Code gerade ausprobiert, sprich eine .ps1 mit ebendiesem erstellt und mit frisch installierter Powershell 3.0 ausgeführt.

Das hat leider so nicht funktioniert, die Fehlermeldung war leider wieder zu schnell weg.

Beste Grüße,

Therul
 
Hmm, bei mir macht er das ohne Probleme...

Du kannst aber auch einfach die Powershell aufrufen, in den entsprechenden Ordner mit den Bildern wechseln, die Zeile vom letzten Post in die Shell kopieren und dann ausführen.

Das es mit der .ps1 nicht klappt liegt bestimmt an der Execution Policy, sprich du darfst das Skript nicht ausführen. Das könntest du mit "Set-ExecutionPolicy RemoteSigned" per Shell auch anpassen.
 
Zurück
Oben