Gå til innhold

Søke på flere verdier samtidig?


Bjerknez

Anbefalte innlegg

Jeg står litt fast i et følgende scenario:

 

Jeg har en Excel fil som inneholder over 1200stk. EAN koder (13-siffrede tall). På pc'en i en annen mappe så har jeg produktbilder som har disse EAN kodene som filnavn.

 

Problemet er at det er MANGE andre bilder i denne mappen også, samt flere versjoner av hvert bilde, så jeg må ha muligheten til å "lime inn" alle EAN kodene som befinner seg i Excel skjemaet i et slags søkeprogram som klarer å finne alle bildefilene på en gang, slik at jeg bare kan markere dem og velge kopier, slik at jeg får limt dem inn i en egen mappe.

 

Det finnes mange programmer som man kan bruke og alle fungerer, men man får bare søkt på et og ett bilde og det tar laaang tid.

 

Det mest ideelle er hvis det fantes ett søkeprogram som kunne importere disse EAN kodene som csv fil og som kunne søke etter alle på en gang. Men har ennå ikke funnet et program som klarer dette.

 

Om det koster litt spiller ikke så stor rolle, men helst gratis så klart.

Endret av Bjerknez
Lenke til kommentar
Videoannonse
Annonse

Om jeg har forstått dette riktig, skulle det ganske lett la seg løse med litt batch scripting. Et slikt script kan ta en liste med filnavn fra en tekstfil og kopiere disse filene til en annen mappe direkte, uten mer innblanding fra deg. Hvilket filetternavn har bildene? Er det likt for alle?

Lenke til kommentar

Om jeg har forstått dette riktig, skulle det ganske lett la seg løse med litt batch scripting. Et slikt script kan ta en liste med filnavn fra en tekstfil og kopiere disse filene til en annen mappe direkte, uten mer innblanding fra deg. Hvilket filetternavn har bildene? Er det likt for alle?

Alle bildene har .jpg som fil etternavn, og når det i Excel står feks. "9788321674859" så heter bildet jeg skal ha "9788321674859_MAIN.jpg"

 

Siden det er flere versjoner av samme bildet så er det da altså bildet med endelsen "_MAIN" som jeg skal ha.

Lenke til kommentar

Så enkelt at selv Windows kan få det til. :p

 

Jeg antar at EAN-kodene står nedover i én kolonne i Excel-fila? Da kopierer du bare den kolonnen og limer inn i en tekstfil (filnavn.txt), slik at du har én EAN-kode per linje. Ikke få med noe annet enn de EAN-kodene du vil ha, hvis det finnes mer i den kolonnen. Følgende kode skal da gjøre susen:
mkdir nymappe
for /F "tokens=*" %%A in (filnavn.txt) do copy %%A_main.jpg nymappe
Lim inn i en ny tekstfil og endre til whatever.bat. Legg filnavn.txt og whatever.bat i mappa med bildene som skal kopieres, og dobbeltklikk på .bat-fila.
Lenke til kommentar

 

Så enkelt at selv Windows kan få det til. :p

 

Jeg antar at EAN-kodene står nedover i én kolonne i Excel-fila? Da kopierer du bare den kolonnen og limer inn i en tekstfil (filnavn.txt), slik at du har én EAN-kode per linje. Ikke få med noe annet enn de EAN-kodene du vil ha, hvis det finnes mer i den kolonnen. Følgende kode skal da gjøre susen:
mkdir nymappe
for /F "tokens=*" %%A in (filnavn.txt) do copy %%A_main.jpg nymappe
Lim inn i en ny tekstfil og endre til whatever.bat. Legg filnavn.txt og whatever.bat i mappa med bildene som skal kopieres, og dobbeltklikk på .bat-fila.

 

Tusen takk!

 

Men hva hvis bildene ligger i forskjellige mapper i den mappen som whatever.bat og filnavn.txt ligger?

 

EDIT:

Så ikke ut til å funke. Den lager en ny mappe, men ingen bilder blir lagt i den nye mappen...

Endret av Bjerknez
Lenke til kommentar

Men hva hvis bildene ligger i forskjellige mapper i den mappen som whatever.bat og filnavn.txt ligger?

 

Da vil det ikke funke slik, nei. Jeg gikk ut fra at bildene lå samlet i den ene mappa, ikke i ytterligere undermapper. Hvordan er strukturen blant mappene? Er det fryktelig mange av dem?

 

Det kan hende koden kan utvides med noe som søker gjennom undermapper, men det kan jeg ikke noe om. Er du fortsatt interessert i kode, kan du be om å få flyttet tråden over til programmeringsforumet (edit: f.eks. Windows-programmering). Der er det mange luringer. :)

Endret av Imsvale
Lenke til kommentar

 

Men hva hvis bildene ligger i forskjellige mapper i den mappen som whatever.bat og filnavn.txt ligger?

 

Da vil det ikke funke slik, nei. Jeg gikk ut fra at bildene lå samlet i den ene mappa, ikke i ytterligere undermapper. Hvordan er strukturen blant mappene? Er det fryktelig mange av dem?

 

Det kan hende koden kan utvides med noe som søker gjennom undermapper, men det kan jeg ikke noe om. Er du fortsatt interessert i kode, kan du be om å få flyttet tråden over til programmeringsforumet. Der er det mange luringer. :)

 

Det er ca. 50stk. mapper og noen av dem har undermapper igjen. Fint hvis noen her har peiling på dette og kan gi meg koden :)

Lenke til kommentar

Bildene dukker opp, men altså..jeg vil at den også skal søke etter bildene i alle undermapper og ikke bare den mappen whatever.bat og filnavn.txt befinner seg i.

 

Det er rimelig nok det, når det er der de ligger. :p Du får nok se bort ifra min kode inntil videre, for den er da ikke tilstrekkelig, dessverre.

Lenke til kommentar

 

Bildene dukker opp, men altså..jeg vil at den også skal søke etter bildene i alle undermapper og ikke bare den mappen whatever.bat og filnavn.txt befinner seg i.

 

Det er rimelig nok det, når det er der de ligger. :p Du får nok se bort ifra min kode inntil videre, for den er da ikke tilstrekkelig, dessverre.

 

Ok... da venter jeg på flere svar :)

 

Men takk for hjelpen så langt :)

Lenke til kommentar

Da prøver jeg igjen. Ser ut til å funke:

mkdir nymappe
for /F "tokens=*" %%A in (filnavn.txt) do dir /b /s %%A_main.jpg | find "." >> working186749
for /F "tokens=*" %%A in (working186749) do copy /b "%%A" nymappe
del working186749
Finner filene i undermapper, putter filadressene inn i en midlertidig fil med et usannsynlig navn og kopierer alt etter at info er samlet. Sletter den midlertidige filen etterpå. Ellers det samme som før.
 
Aner ikke hvordan jeg kan få skutt filadressen direkte inn i copy før nymappe. Irriterer meg litt, men det får så være. :p
 
La også til /b for copy – det er antakelig nødvendig her.
 
Vil du beholde mappestrukturen slik den var så gir jeg opp for godt. :D
Lenke til kommentar

 

Da prøver jeg igjen. Ser ut til å funke:

mkdir nymappe
for /F "tokens=*" %%A in (filnavn.txt) do dir /b /s %%A_main.jpg | find "." >> working186749
for /F "tokens=*" %%A in (working186749) do copy /b "%%A" nymappe
del working186749
Finner filene i undermapper, putter filadressene inn i en midlertidig fil med et usannsynlig navn og kopierer alt etter at info er samlet. Sletter den midlertidige filen etterpå. Ellers det samme som før.
 
Aner ikke hvordan jeg kan få skutt filadressen direkte inn i copy før nymappe. Irriterer meg litt, men det får så være. :p
 
La også til /b for copy – det er antakelig nødvendig her.
 
Vil du beholde mappestrukturen slik den var så gir jeg opp for godt. :D

 

Aner ikke hva du har gjort her, men denne får jeg ikke til å fungere i det hele tatt.

 

Jeg legger whatever.bat og filnavn.txt i mappen som inneholder alle mappene med bildene i og den legger ingen bilder i "nymappe".

Lenke til kommentar

Aner ikke hva du har gjort her, men denne får jeg ikke til å fungere i det hele tatt.

 

 

Jeg legger whatever.bat og filnavn.txt i mappen som inneholder alle mappene med bildene i og den legger ingen bilder i "nymappe".

Hm, merkelig. Det funker i testopplegget mitt. Der finner den bilder som ligger i ymse undermapper og kopierer dem til den angitte mappa.

 

Har du utforsker satt opp slik at den viser filetternavn? Kan du bekrefte at filetternavnet til bildene er nøyaktig .jpg og ikke f.eks. .jpeg? Hvis det er sistnevnte, så trenger vi bare å endre dette i koden. Det må stemme nøyaktig.

 

Edit:

Ellers kan du prøve koden under hvis du vil se innholdet i den midlertidige fila (nå med filetternavn, så det er enklere å åpne i Notepad :p). Hvis den er tom, så har den ikke funnet noen match med filnavnene som er angitt. (Edit2: Er den ikke tom, kan du eventuelt sende den til meg på PM.)

mkdir nymappe
del working186749.txt
for /F "tokens=*" %%A in (filnavn.txt) do dir /b /s %%A_main.jpg | find "." >> working186749.txt
for /F "tokens=*" %%A in (working186749.txt) do copy /b "%%A" nymappe
::del working186749.txt

Og find "." er egentlig overflødig her, siden vi allerede har spesifisert filnavn med punktum og filetternavn. Det var noe jeg lånte fra kode som antakelig var ment til mer generell bruk. :)

Endret av Imsvale
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...