Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Text vergelijken met bestanden?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met coinops op mijn oude xbox te zetten. Ik heb hier nogal wat roms voor. Ze worden niet allemaal ondersteund.

Ik heb een txt file met de ondersteunde namen en een map vol met roms.

Is er een programma die files uit de map kan halen die in dat txt bestandje staan?

  • tinzarian
  • Registratie: December 2000
  • Niet online
Als de bestandsnamen precies in het tekstbestandje staan kan dat met een simpel batchscriptje

Verwijderd

Topicstarter
Uhm Ik denk niet dat ik dat kan...

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 19-11 09:39
Dit lijkt zoiets waarin meer tijd zit in het zoeken en/of maken van een oplossing dan dat je gewoon handmatig de roms kopieert. Tenzij er meer dan 200 roms of zo in het tekstbestandje staan.

Dat gezegd zijnde zou ik zelf waarschijnlijk ook meteen een geautomatiseerde oplossing zoeken tegen beter weten in :+ .

Verwijderd

Topicstarter
Het zijn rond de 100000 roms die ik heb en ik moet er ongeveer 6000 uit vissen. Ik heb jammer genoeg best weinig (geen) verstand van batch files.

  • Equator
  • Registratie: April 2001
  • Laatst online: 19-11 14:24

Equator

Crew Council

#whisky #barista

Als de roms ook nog eens in verschilelnde mappen staan en je weet niet precies waar dan..
Uitvoeren in de root van de drive waar je roms staan..
C:\>for /F "tokens=*" %i in (lijstje.txt) do DIR /S /B "%i" >> result.txt

Dit resulteert in een bestand "result.txt" waarin de volledige paden staan naar de bestanden.

Als het 1 hele grote maps is waarin de roms staan dan kan je ook direct je lijstje (result.txt) gebruiken met dit commando.
C:\>for /F "tokens=*" %i in (result.txt) do copy "%i" G:\ (of een ander pad..)


Hierbij ga ik uit van het feit dat er alleen een bestandsnaam in je eerste 'lijstje.txt' staat, en niet een halfbakken pad.
Als je een kleine knip uit het inputlijstje kan geven kunnen we iets meer zekerheid bieden :)

[ Voor 14% gewijzigd door Equator op 15-07-2014 09:57 ]


Verwijderd

Topicstarter
Equator schreef op dinsdag 15 juli 2014 @ 09:15:
Als de roms ook nog eens in verschilelnde mappen staan en je weet niet precies waar dan..
Uitvoeren in de root van de drive waar je roms staan..
C:\>for /F "tokens=*" %i in (lijstje.txt) do DIR /S /B "%i" >> result.txt

Dit resulteert in een bestand "result.txt" waarin de volledige paden staan naar de bestanden.

Als het 1 hele grote maps is waarin de roms staan dan kan je ook direct je lijstje (result.txt) gebruiken met dit commando.
C:\>for /F "tokens=*" %i in (result.txt) do copy "%i" G:\ (of een ander pad..)


Hierbij ga ik uit van het feit dat er alleen een bestandsnaam in je eerste 'lijstje.txt' staat, en niet een halfbakken pad.
Als je een kleine knip uit het inputlijstje kan geven kunnen we iets meer zekerheid bieden :)
Dank je wel!!
Maar helaas ik heb er mee lopen stoeien maar krijg foutmeldingen.

misschien tijd voor meer info :)

dit is een kleine greep uit mijn lijstje:

005
1941
1941j
1942
1942a
1942b
[...]
lastduel
lastfero
lastfort
lastmisn
lastmsnj
lastmsno
lastsurv
lazercmd
lbboss
lbowling


Het txt bestand staat:

F:\Coinops\

De naam van het txt:

Supported Games Lookup For Naming

De plek waar de roms nu in staan:

F:\Emulators\MAME\MameUI64\ROMs

De plek waar de roms naartoe moeten:

F:\Coinops\roms

Heb je nog meer informatie nodig?

[ Voor 71% gewijzigd door Lustucru op 15-07-2014 22:30 . Reden: Wat je maar een kleine greep noemt 8)& ]


  • Equator
  • Registratie: April 2001
  • Laatst online: 19-11 14:24

Equator

Crew Council

#whisky #barista

Quick & Dirty.. Uit te voeren als een los commando:
C:\>for /F "tokens=*" %i in ("F:\Coinops\Supported Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:\Coinops\roms\ >> result.txt


Iets mooier, maar moet je als batch bestand uitvoeren (dus kopieren naar een .cmd tekstbestand)

@echo off
set inputfile = "F:\Coinops\Supported Games Lookup For Naming.txt"
set logfile = F:\result.txt
set source = F:\Emulators\MAME\MameUI64\ROMs
set target = F:\Coinops\roms\

echo haal elke lijn op uit inputfile
for /F "tokens=*" %%i in (%inputfile%) do call :checkncopy %%i
goto end

:checkncopy
if exist %source%\%1.* copy %source%\%1.* %target% >> %logfile%
:EOF

:end
exit


not tested natuurlijk.. ;)

Verwijderd

Topicstarter
Equator schreef op donderdag 17 juli 2014 @ 08:04:
Quick & Dirty.. Uit te voeren als een los commando:
C:\>for /F "tokens=*" %i in ("F:\Coinops\Supported Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:\Coinops\roms\ >> result.txt


Iets mooier, maar moet je als batch bestand uitvoeren (dus kopieren naar een .cmd tekstbestand)

@echo off
set inputfile = "F:\Coinops\Supported Games Lookup For Naming.txt"
set logfile = F:\result.txt
set source = F:\Emulators\MAME\MameUI64\ROMs
set target = F:\Coinops\roms\

echo haal elke lijn op uit inputfile
for /F "tokens=*" %%i in (%inputfile%) do call :checkncopy %%i
goto end

:checkncopy
if exist %source%\%1.* copy %source%\%1.* %target% >> %logfile%
:EOF

:end
exit


not tested natuurlijk.. ;)
Dank je ! Maar ik krijg het niet voor mekaar.

Moet ik de batch file nog in een bepaalde map zetten?

Als ik namelijk eentje heb aangemaakt dan klik ik er op en nog geen seconde erna verdwijnt die.

Er komt wel een txt bestand maar die is leeg.

En als ik in cmd de code invoer dan geeft hij een foutmelding dat de c schijf niet goed is...

Moet ik in cmd nog in een bepaalde file zijn voor dat ik het uitvoer?

Ik denk dat ik iets heel stom fout doen.... Sorry (had ik er maar verstand van) |:(

  • Equator
  • Registratie: April 2001
  • Laatst online: 19-11 14:24

Equator

Crew Council

#whisky #barista

Als je een command window opent, en je voert deze regel uit:
C:\>for /F "tokens=*" %i in ("F:\Coinops\Supported Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:\Coinops\roms\ >> F:\result.txt


Wat staat er dan in F:\result.txt?

Verwijderd

Topicstarter
Equator schreef op donderdag 17 juli 2014 @ 10:40:
Als je een command window opent, en je voert deze regel uit:
C:\>for /F "tokens=*" %i in ("F:\Coinops\Supported Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:\Coinops\roms\ >> F:\result.txt


Wat staat er dan in F:\result.txt?
Moet ik command window in een specifieke map openen?

In result.txt is leeg.

Verwijderd

Topicstarter
Microsoft Windows [versie 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.

F:\Emulators\MAME\MameUI64\ROMs>C:\>for /F "tokens=*" %i in ("F:\Coinops\Support
ed Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:
\Coinops\roms\ >> F:\result.txt
C:\ wordt niet herkend als een interne
of externe opdracht, programma of batchbestand.

  • KnoxNL
  • Registratie: Juli 2009
  • Laatst online: 07:51
:D :D _/-\o_

Schitterend dit!

Je moet de tekst zonder "C:\>" uitvoeren. Dat is je prompt van het OS wat er altijd al staat.
Dan nog geen garanties van mijn kant want ik ken dit commando niet ;)

Verwijderd

Topicstarter
echt..... ik snap er dus echt helemaal niks van...

Verwijderd

Topicstarter
De syntaxis van de opdracht is onjuist.


dit staat er nu in de txt file..

  • KnoxNL
  • Registratie: Juli 2009
  • Laatst online: 07:51
Je opent het command prompt goed zo te zien, aan de MS tekst. De directory waarin lijkt aan je screenshot te zien: F:\Emulators\MAME\MameUI64\ROMs. Klopt dit?

Hoewel het niet uit moet maken, als het een native commando is moet het vanuit elk pad werken.

Daarna voer je in: C:\>for /F "tokens=*" %i in ("F:\Coinops\Support
ed Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:
\Coinops\roms\ >> F:\result.txt. Correct?

Doe dat zonder de C:\> aan het begin.

Als de vernoemde bestanden in het commando dan goed ingevuld zijn moet het goed gaan. Nogmaals het commando ken ik inhoudelijk niet.

Verwijderd

Topicstarter
ik kom er echt niet uit... heb nu elke willekeurige opdracht gegeven.

Verwijderd

Topicstarter
F:\Coinops>for /F "tokens=*" %i in ("F:\Coinops\Support
Meer? ed Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%
i.* F:
Meer? \Coinops\roms\ >> F:\result.txt
>> niet verwacht op dit moment.


dit is wat ik krijg als ik de c:\ weg laat.

  • KnoxNL
  • Registratie: Juli 2009
  • Laatst online: 07:51
In het .txt bestand?

Dan wordt het commando wel goed uitgevoerd maar zit er een fout in het statement.
Daar kan ik je op dit moment niet even asap mee helpen.

Je moet even het for commando checken "for /?" of "for help" waarschijnlijk.
Daar kun je de parameters zien die je moet opgeven (paden etc.) En eventuele opties.

Er zitten ook veel spaties in je eerste pad naar de .txt die ik niet begrijp. Vermijd spaties in map/file namen indien dat mogelijk is.

  • Equator
  • Registratie: April 2001
  • Laatst online: 19-11 14:24

Equator

Crew Council

#whisky #barista

Mja, ik ga geen cursusje DOS of CMD geven, maar het lijkt erop dat je halve commando's geeft.

Je kan kopieren en plakken in een CMD venster..

Start een CMD venster:

In het CMD venster, type je de volgende commando's.
C:\Gebruikers\gebruikersnaam\>F:

F:\>cd Coinops

F:\Coinops\>


Daarna kopieer je deze volledige zin:
code:
1
for /F "tokens=*" %i in ("F:\Coinops\Supported Games Lookup For Naming.txt") do copy F:\Emulators\MAME\MameUI64\ROMs\%i.* F:\Coinops\roms\ >> F:\result.txt

Je start daarbij met het woordje 'for' en je eindigt met het wordje 'result.txt'.

Dan plak je dat in het CMD venster (rechtermuisknop in het venster, selecteer plakken / paste in het contextmenu)
Dan druk je op enter.

Het is 1 lang commando. Hooguit zal het door de lengte over meerdere regels worden getoond, maar er mag geen <enter> tussen zitten.

Verwijderd

Topicstarter
Jammer, ik krijg het niet voor mekaar.

ik ben bang dat ik maar ga beginnen met de files eruit halen met de hand.

Dank jullie wel voor alle hulp!
Pagina: 1