[BATCH] Ta reda på information i filnamn och sen använda sig av den

Permalänk

[BATCH] Ta reda på information i filnamn och sen använda sig av den

Jag vill som sagt ta ut en del av ett filnamn och sen använda mig av den för att flytta filen till rätt mapp.

TEST.S04E11.AVI

Som det ser ut nu fyller jag själv i denna delen genom att använda mig av detta för att flytta filen ovan:

Set TEST=Season 4

Och sen kallar jag på denna funktion i move och mkdir kommandot

if not exist "d:\video\serier\TEST\%TEST%" mkdir "d:\video\serier\TEST\%TEST%"
move d:\Nerladdningar\completed\*TEST* "d:\video\serier\TEST\%TEST%"

Detta vill jag nu slippa och istället få den att ta ut S4 eller S04 (kan finnas båda) automatiskt ur filnamnet och då associera S4/S04 med Season 4 och sen använda mig av det när jag flyttar filen eller gör ny mapp för säsong.

Visa signatur

Speldatorn: Asus P7P55D EVO | Intel Core i5 750@3,5GHz | 4Gb 1333MHz | 5850 CF | 3x BenQ 2222HDL @ 5760x1080
Servern: ASRock FM2A85X | AMD A8-5600K @3,6GHz | 8GB 1866MHz Corsair Vengeance LP | 8TB Lagring

Permalänk
Medlem

Du får splitta filnamnet på punkt, sedan kan du plocka ut första elementet.
Från andra elementet så får du splitta på E för att sedan ta bort första tecknet (S) ur första elementet vilket bör ge dig 04 eller 4, du får då konvertera 04 till 4 eller viceversa.
Du bör nu enkelt kunna bygga ihop din sträng igen.
http://www.dostips.com/DtTipsStringManipulation.php
http://www.dostips.com/DtTipsStringOperations.php

Om du tycker det är tjorvigt att göra med batchscript så kan du gå upp nån nivå och använda vbscript, eller om du som mig skyr vbscript som pesten så installera och använd perl, python eller något annat favvoscriptspråk.

Lycka till

Visa signatur

weeeee

Permalänk

Man tackar Mounte. Ska se om jag kan fixa ihop nått under morgondagen när jag är lite mindre alkoholpåverkad

Jag är helt handikappad när det gäller programmering och har lärt mig det jag har skrivit för tillfället under tiden jag skrev det så att skriva det på något annat språk betyder att jag måste lära mig ett nytt språk helt enkelt

Men nog ska jag allt lyckas klura ut hur man splittar etc bara jag börjar laborera lite med det

Visa signatur

Speldatorn: Asus P7P55D EVO | Intel Core i5 750@3,5GHz | 4Gb 1333MHz | 5850 CF | 3x BenQ 2222HDL @ 5760x1080
Servern: ASRock FM2A85X | AMD A8-5600K @3,6GHz | 8GB 1866MHz Corsair Vengeance LP | 8TB Lagring

Permalänk

Har lyckats få fram det nu men kom på att detta kommer till att gå åt helvete om dom ändrar filnamnet lite (tex tar bort en punkt innan S01E01) eller om det istället står 01x01. Så jag får nog ta o fortsätta göra det för hand

Men om det nu är någon som kollar här och ville veta hur jag fick fram det så skriver jag det här endån

@echo off for /f %%a in ('dir /b *test*') do set testname=%%~na for /f "tokens=1-5 delims=." %%a in ("%testname%") do set test1=%%d for /f "tokens=1 delims=eE" %%a in ("%test1%") do set test2=%%a set test3=%test2:~1% echo %test1% echo %test2% echo %test3% PAUSE

Det fetstilta i kodsnutten undertill ändras mellan a till e beroende på var i du har SxxExx i din string. a är första delningspunkten och d är då 4e delningspunkten

do set test1=%%d

Ett sätt jag också lekte runt med var att dela på både S och E och på så vis få fram det genom att bara köra en delims.

@echo off for /f %%a in ('dir /b *lying*') do set test=%%~na for /f "tokens=1-5 delims=SEse" %%a in ("%test%") do set test1=%%d echo %test1% PAUSE

Notera att detta säkert går att göra på ett bättre sätt men jag håller på o självlär mig så det var detta jag kom upp med

Visa signatur

Speldatorn: Asus P7P55D EVO | Intel Core i5 750@3,5GHz | 4Gb 1333MHz | 5850 CF | 3x BenQ 2222HDL @ 5760x1080
Servern: ASRock FM2A85X | AMD A8-5600K @3,6GHz | 8GB 1866MHz Corsair Vengeance LP | 8TB Lagring

Permalänk
Medlem

Reguljära uttryck i t.ex. Perl borde göra susen i det här fallet. Men mest vill jag kommentera att det är briljant att du använder ordet “Nerladdningar” (och inte “Nedladdningar”), då ingen vet vad det är så slipper man tänka på §7.

Visa signatur

citera!

Permalänk
Skrivet av Dosshell:

Reguljära uttryck i t.ex. Perl borde göra susen i det här fallet. Men mest vill jag kommentera att det är briljant att du använder ordet “Nerladdningar” (och inte “Nedladdningar”), då ingen vet vad det är så slipper man tänka på §7.

haha underbart att jag har det felstavat också xD Men sen är det ju självklart inga olagliga saker som tankas här inte.

Får ta o kolla lite på Perl då kanske o se om jag kan komma fram till nått där. Borde väll inte vara mycket svårare att sätta sig in i grunderna än vad batch filerna va

Visa signatur

Speldatorn: Asus P7P55D EVO | Intel Core i5 750@3,5GHz | 4Gb 1333MHz | 5850 CF | 3x BenQ 2222HDL @ 5760x1080
Servern: ASRock FM2A85X | AMD A8-5600K @3,6GHz | 8GB 1866MHz Corsair Vengeance LP | 8TB Lagring

Permalänk
Medlem

Tjo,
det är inte svårare att sätta sig in i grunderna i Perl, i mina ögon är det mycket enklare att vränga lite som man vill med Perl.
Du kan dock fundera på om du ska köra på python eller perl. Om du vill dra dig vidare och kanske göra lite web-programmering så är det nog smartare att gå mot python då du kan använda django och andra ramverk.

Visa signatur

weeeee