[XP] Files met "&" renamen vanaf command line?

Pagina: 1
Acties:

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

Topicstarter
Ja ja, weer een command line-vraagje. Traditioneel geGoogled en gesearched.

Let op: ik probeer dit te doen _zonder_ extra software omdat ik m'n batchfiles portable wil houden.

Ik rename een hele berg bestanden vanuit een batchfile, maar krijg errors bij bestanden met een ampersand (&) in de bestandsnaam.

Op deze manier gaat het mis:
1. maak in de gui een nieuw tekstbestand en noem dat TEST&BLAAT.TXT
2. ga naar de command line en typ REN *&*.* *-*.*
3. typ REN *"&"*.* *-*.*

(Die quotes eromheen was een idee van CMD /?.)

Omdat je van tevoren de bestandsnamen niet weet, moet je wel wildcards gebruiken.

Dus: hoe kan ik vanaf de command line in alle bestanden met een ampersand in de naam de ampersand vervangen door een ander karakter?

[ Voor 7% gewijzigd door CmdrKeen op 23-03-2004 14:23 ]

Bloed, zweet & koffie


  • Xlnt
  • Registratie: Oktober 2000
  • Laatst online: 03-05 18:18
Hernoemen met wildcards in het doel via het ren-commando werkt erg slecht. Sterker nog meerdere bestanden hernoemen via het ren-commando werkt erg slecht.

Ik gebruik in zulke gevallen het for-commando om bestanden die voldoen aan een patroon per stuk te hernoemen.

Probeer het volgende eens.
code:
1
for /f "tokens=1,* delims=&" %f in ('dir /b "*&*"') do ren "%f&%g" "%f-%g"

Voor elk bestand dat een naam heeft in de vorm *&*, wordt het bestand gesplitst op de eerste &. De twee delen opgeslagen in %f en %g. Daarna wordt het ren-commando uitgevoerd.

Merk op dat dit alleen de eerste & vervangt. Wil je meerdere vervangen, zul je dit vaker moeten uitvoeren. Wil je meer vrijheid, bijvoorbeeld meerdere &'s tegelijk vervangen, dan raad ik je een jscript oid aan.

"It's not that I'm lazy. It's that I just don't care."


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

Topicstarter
Natuurlijk! Bedankt :) & is een known delimiter. Je hebt het nadeel hier als voordeel aangewend. Bedankt XInt Xlnt :)

[ Voor 7% gewijzigd door CmdrKeen op 24-03-2004 12:43 ]

Bloed, zweet & koffie


  • Xlnt
  • Registratie: Oktober 2000
  • Laatst online: 03-05 18:18
Je kunt daar natuurlijk ook elke andere delimiter opgeven in plaats &. Overigens, mijn nick is XLnt, als in Excellent ;).

"It's not that I'm lazy. It's that I just don't care."