Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

dateiname vorne abschneiden

Frage Entwicklung Batch & Shell

Mitglied: jazzman

jazzman (Level 1) - Jetzt verbinden

13.06.2008, aktualisiert 14.06.2008, 8777 Aufrufe, 3 Kommentare

da gibt es bestimmt eine ganz einfache lösung

hallo,

ich lege gerade eine filmdatenbank an. dazu sortiere ich filmkritiken aus txt dateien in ordner, welche nach regisseuren und filmen benannt sind.
die ausgangsdatei ist immer "nachname - filmtitel.txt" (eine ordnung ist also da).
ich möchte diese datei nun vom ausgangsverzeichnis ins regisseurverzeichnis verschieben und dabei vorne einfach den nachnamen abschneiden (denn der steht ja schon im ordner).

mehrere filme vom selben regisseur sollen in ein verzeichnis verschoben werden.
im ausgangsordner sind z.b.:
3 filme von jarmusch
3 filme von godard

ich stell mir das automatische verschieben so vor:

"c:\rezensionen\jarmusch - down by law (1986).txt" -> "h:\filme\jim jarmusch\down by law (1986).txt"
"c:\rezensionen\jarmusch - mystery train (1989).txt" -> "h:\filme\jim jarmusch\mystery train (1989).txt"
"c:\rezensionen\jarmusch - night on earth (1991).txt" -> "h:\filme\jim jarmusch\night on earth (1991).txt"

"c:\rezensionen\godard - vivre sa vie (1962).txt" -> "h:\filme\jean-luc godard\vivre sa vie (1962).txt"
"c:\rezensionen\godard - bande a part (1964).txt" -> "h:\filme\jean-luc godard\bande a part (1964).txt"
"c:\rezensionen\godard - alphaville (1965).txt" -> "h:\filme\jean-luc godard\alphaville (1965).txt"

den move befehl hab ich verstanden. aus anderen umbenennungsthreads bin ich nicht sonderlich schlau geworden, weil da nicht allzuviel erklärt wird und die leute hinten was loswerden wollen.
ich brauch aber vorn was knackiges zum abschneiden und die möglichkeit es nachvollziehen zu können, wäre natürlich auch nicht schlecht.

beste grüsse
Mitglied: Biber
13.06.2008 um 18:53 Uhr
Moin jazzman,

willkommen im Forum.

Bei Deiner Anforderung gibt es das kleine Problem, dass bei der Moverei das Skriptchen auch noch ermitteln soll, dass der Quell-Dateinamensteil "godard" in das Zielverzeichnis "jean-luc godard" gehört.

Wenn es für Dich vertretbar ist, dass diese Unterverzeichnisse unterhalb vom Ziel (bei Dir ist das "h:\filme") bereits angelegt sind, dann ginge es mit einem Oneliner vom CMD-Prompt.

Da ich Dir die Tipperei nicht zumuten will, habe ich es in einen Batch gepackt.
01.
::---Snipp MoveRezensionen.cmd 
02.
@FOR %%a in ("c:\rezensionen\*.txt") do @( 
03.
  FOR  /f "tokens=1,* delims=- " %%i in ("%%~nxa") do @( 
04.
    For /d %%z in ("h:\filme\*%%i*") do @( 
05.
    echo Move "%%a" "%%~z\%%j" 
06.
)))  
Anstarten würde ergeben:
01.
>e:\work\MoveRezensionen.cmd 
02.
Move "c:\rezensionen\godard - bande a part (1964).txt" "h:\filme\jean-luc godard\bande a part (1964).txt" 
03.
Move "c:\rezensionen\jarmusch - down by law (1986).txt" "h:\filme\jim jarmusch\down by law (1986).txt"
Wenn das passt, dann nimm das "echo" raus aus dem Batch - dann moved er wirklich.
Gute Nachricht: wenn Du das "echo" rausnimmst, dann ist der Schnipsel auch nicht mehr so lang.

Grüße
Biber

P.S. Wenn es sein muss, werde ich auch kommentieren.
Aber bitte versuch erst, gedanklich den drei FOR-Anweisungen und ihren Variablen zu folgen
  • %%a durchläuft alle *.txt-Dateinamen in Quelle c:\rezensionen
  • %%i ist nur eine FOR/F-Textzerlege- Variable... für den Dateinamen
  • %%z ermittelt aus der Liste der Unterverzeichnisse in h:\filme das Passende.

P.P.S. Geschmack hast Du ja... für "Unterm Dirndl wird gejodelt" hätte ich das nicht getan.
Bitte warten ..
Mitglied: jazzman
14.06.2008 um 13:10 Uhr
hammer!!!!!!!!!!
ja die unterverzeichnisse sind da und es klappt wie am schnürchen. ich kann sogar neue regisseure mit reinnehmen und die werden erkannt - meisterlich gelöst biber!
und das in einer geschwindigkeit, die ihresgleichen sucht.

wenn du mal in leipzig bist, komm doch in mein kino, da liegt schon ne freikarte für dich bereit.

ps: FOR /f "tokens=1,* delims=- " %%i in ("%%~nxa") do @(
warum muss ich einen token ziehen? wird bei delims was getrennt? ~nxa ist mir auch schleierhaft? die restzeilen sind klar!

pps: zum glück hast du nicht auf die rechtschreibung bei rezensionen geschaut
Bitte warten ..
Mitglied: Biber
14.06.2008 um 17:40 Uhr
Moin jazzman,

freut mich, dass es klappt... und die Kinokarte hole ich auch ab, wenn in Leipzig bin, versprochen.

Zu der Zeile: FOR /f "tokens=1,* delims=- " %%i in ("%%~nxa") do @(

Mein Vorgehen war folgendes:
  • "c:\rezensionen\godard - vivre sa vie (1962).txt" ==> steht in der Variablen %%a
  • "godard - vivre sa vie (1962).txt" ==> Von %%a nur Name und eXtension %%~nxa
  • "godard" ==> erstes Token/Token 1 bei FOR /f "tokens=1,* delims=- "
  • " - " ==> die Delimiter selbst ("delims=- ") werden quasi ausgeblendet
  • "vivre sa vie (1962).txt" ==> das ist der "Rest", in dieser Syntax "tokens=1,*" als "*" beschrieben.
  • "Token1" wird als %%i und "Token Rest" als %%j weitergereicht.

Insgesamt lautete also diese FOR /F-Anweisung:
Teile mir die Input-Zeile auf in das erste Token und den ganzen Rest unter der Auflage, dass die Trennzeichen in dieser Zeile nur Bindestrich und Leerzeichen sind.

Liebe Grüße nach Leipzschg
Biber

P.S. Ich hätte mich an diesen Oneliner nie rangetraut, wenn Du nicht geschrieben hättest: "da gibt es bestimmt eine ganz einfache lösung"
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell
Frage von cberndtBatch & Shell9 Kommentare

Hallo Leute Ich möchte Dateien in einem Ordner mit Hilfe einer Batch/Shell Datei umbenenen. Die Dateien heißen: 253525_V_4834.jpg 2525212_V48333_25.jpg ...

Drucker und Scanner
Drucker - vorne rein, vorne raus
gelöst Frage von FA-jkaDrucker und Scanner13 Kommentare

Gesucht: - A3 Tintenstrahldrucker - Netzwerkschnittstelle - Die Schublade mit dem Papier wird von vorne in das Gerät eingeschoben ...

Exchange Server
Abschneiden der Transaktionsprotokolle mit einer batch-Datei?
gelöst Frage von MadanteExchange Server3 Kommentare

Hallo zusammen, Seit geraumer Zeit bieten wir Datensicherungen (Paragon) unseren Kunden an. Leider werden "während" der Vollsichersicherung die Transaktionsprotokolle ...

Windows 10
Datum verstellt sich um paar Tage nach vorn
Frage von HarlinWindows 106 Kommentare

Guten Tag Habe folgendes Problem. Das Datum stellt sich nach Ablauf einer Woche um mindestens 3 Tage oder bis ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 10 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 11 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server12 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server12 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Netzwerkgrundlagen
Laufwerkszuordnung mit zwei IPs
Frage von Alex29Netzwerkgrundlagen11 Kommentare

Hallo in die Runde, Ich als Hobbyadmin hätte mal wieder eine Frage an die Profis. Ich habe ein Netzwerk ...