[XP] In batch alles na spatie weghalen in bestandsnaam*

Pagina: 1
Acties:
  • 162 views sinds 30-01-2008
  • Reageer

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
hallo, ik heb een vraagje:

ik ben bezig met het maken van een active desktop wat tot nu toe aardig lukt.
nu wil ik hyperlinks maken van de snelkoppelingen op m'n achtergrond, dus iconen verbergen, en ik heb de links op de html pagina staan.

tot nu toe prima, maar die links voeren uit door een VBscriptje, wat geen spaties accepteerd in de bestandsnaam, ook %20 pakt ie niet, dus wat ik wil is:

als ik "hoi doei.lnk" heb, zou het dus of "hoidoei.lnk" of "hoi.lnk" moeten worden.

nu heb ik al een tijdje zitten zoeken naar oplossingen (google en GoT) maar ik kan nog niet echt een oplossing vinden.

ik lees met een bat bestand de map Bureaublad uit, en die inhoud kopieer ik en die bestanden moeten dus hernoemd worden, zou iemand mij mischien op weg kunnen helpen?

ik heb al wat met FOR gespeeld, maar die help text die erbij zit wordt ik niet veel wijzer uit, ook kan ik niet steeds met de hand gaan renamen, want dan zou ik iedere keer als ik een icoontje toevoeg een handmatige rename moeten doen (kan wel maar is niet praktisch)

Alvast bedankt.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 25-04 21:17

curry684

left part of the evil twins

Wat doet dit in Webdesign & Graphics 8)7

Windows-batchbestandjes doen we gewoon in Windows Operating Systems hoor ;) * curry684 geeft tikje.

Professionele website nodig?


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
oeps, ik dacht me te herrineren dat ik een admin/mod een keer had zien antwoorden dat een batch niet in programming / webscripting moest, maar in webdesign / graphics omdat het niet echt programmeren was ofzo :P

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
Niemand die hier een oplossing voor weer?? het lijkt zo simpel, maar ik kom er ook nog steeds niet uit :(

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Als je simpelweg met for door je variabelen loopt, kan je het vrij simpel doen:

code:
1
for /f "tokens=1,2,3,4,5,6,7,8" %i in ('dir /b') do @echo %i%j%k%l%m


Met een beetje creatitiviteit kan je dit vast uitbreiden naar wat jij wil hebben :)

  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Over welk OS hebben we het? Dan kunnen we dat conform Windows Operating Systems - Policy nog even in je titel zetten :)

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
sanfranjake schreef op vrijdag 03 december 2004 @ 14:25:
Over welk OS hebben we het? Dan kunnen we dat conform Windows Operating Systems - Policy nog even in je titel zetten :)
Sorry, vergeten te vermelden, het gaat over Windows XP, en ik heb ook nog steeds geen oplossing gevonden, ik ben bezig geweest met de find commando's en ren & for, maar niets doet precies wat ik wil.
het hoeft alleen de spatie of alles na de spatie (behalve de extensie die altijd .lnk moet zijn) weg te halen.

Ik hoop dat iemand me hiermee kan helpen, want ik zou dit wel graag werkend hebben.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Heb je mijn voorbeeld al eens geprobeerd dan? En wat kwam er uit? Ben je er zelf wel mee aan de slag gegaan? :)

Verwacht in ieder geval geen kant en klare oplossing :)

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
pfff..... ik geloof dat ik niet helemaal wakker ben, ik zie nu net pas dat er een reactie was geplaatst, het aantal reacties bleef hetzelfde, omdat die reactie geplaatst was, en die dubbelpost weggehaald was.

ik ben nu wat aan het spelen met die mogelijke oplossing, en hij zet wel wat in een tekstfile, of in het beeld, maar dat was me ook al (deels) gelukt door proberen, proberen en meer proberen, maar wat ik nu net voor elkaar heb is dit:

ik kan nu de automatisch een textfile schrijven met daarin de filenames zonder alles na de spatie, maar...... het probleem is, de files zonder spatie krijgen 2 keer .lnk achter de naam, deze code gebruik ik:

Batchfile:
1
2
3
4
5
6
@echo off
del list2.txt 

for /f "tokens=1" %%i in (list.txt) do ( 
echo %%i.lnk >> list2.txt
)

del list2.txt
hierin zet ik tijdelijk de ingekortte filenames

for /f "tokens=1" %%i in (list.txt) do (
uit list.txt haalt ie de normale filenames, uitgelezen met dir /b
nu knipt de batch file de naam af, zodat alles na de spatie wegvalt.

echo %%i.lnk >> list2.txt
hier zet ie de ingekorte filenames in list2.txt, en voegt ie .lnk toe aan de naam, prima dus.....
het probleem is dat als ik 1 snelkoppeling heb zonder spatie, dat er dan .lnk.lnk komt te staan,
Verwacht in ieder geval geen kant en klare oplossing
daar ben ik helemaal niet op uit hoor, ik weet dat het forum niet is voor scriptrequests, en daar gebruik ik het ook niet voor, ik vraag alleen om een beetje hulp :)

[ Voor 11% gewijzigd door nick_haak op 03-12-2004 20:11 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je kan nog met 'delims= .' spelen (dus =, spatie, punt) - hiermee geef je op dat Windows af moet kappen op zowel een spatie als op een punt - je zal dan nooit die .lnk file mee krijgen als het goed is :)

  • Hermarcel
  • Registratie: April 2003
  • Niet online
nick_haak schreef op woensdag 01 december 2004 @ 19:08:tot nu toe prima, maar die links voeren uit door een VBscriptje, wat geen spaties accepteerd in de bestandsnaam, ook %20 pakt ie niet, dus wat ik wil is:

als ik "hoi doei.lnk" heb, zou het dus of "hoidoei.lnk" of "hoi.lnk" moeten worden.
Als ik het goed heb, gaan alle posts hier in op jouw vraag hoe je de bestandsnamen zou kunnen veranderen.
Ik vraag me af of je niet even een stap terug zou moeten doen. Je schrijft dat VBscript geen spaties in de bestandsnaam accepteert. Kun je daar wat meer over vertellen? Misschien met een voorbeeldje? Als we VBscript zover kunnen krijgen dat spaties gewoon mee mogen doen, dan is je probleem toch ook opgelost?

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
het vbscript waarmee ik de files uit wil voeren is als volgt:

VBScript:
1
2
3
4
5
6
7
8
9
<script language="VBScript" type="text/vbscript">

   Function VBstartProg(prog)
     Dim WSHShell
     Set WSHShell = CreateObject("WScript.Shell")
     WSHShell.Run(prog)
   end Function

</script>


dit plak ik in de html pagina, en vervolgens maak ik een link, met deze code
HTML:
1
<a href="#" onClick = VBstartProg("filename")>


dit gaat goed, maar accepteerd geen spaties in de bestandsnaam, daarom moet ik dus de filenames inkorten, bij voorkeur door die batch file, zodat ik alles in 1 batch kan doen (map uitlezen, lnk's kopieeren en vervolgens inkorten en de link aanmaken.

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
elevator schreef op zaterdag 04 december 2004 @ 11:29:
Je kan nog met 'delims= .' spelen (dus =, spatie, punt) - hiermee geef je op dat Windows af moet kappen op zowel een spatie als op een punt - je zal dan nooit die .lnk file mee krijgen als het goed is :)
bedankt voor de tip, met "Delims=. " (punt spatie) doet hij dit wel in ieder geval, nu ga ik het bestand even verder wijzigen dat hij hem kopieerd vanaf de oorspronkelijke plek, en dan opslaat onder de nieuwe naam (dat gaat wel lukken lijkt me)

hartelijk bedankt.

  • Hermarcel
  • Registratie: April 2003
  • Niet online
En zo:
VBScript:
1
2
3
4
5
6
7
8
9
10
<script language="VBScript" type="text/vbscript">

   Function VBstartProg(prog)
     Dim WSHShell
     Set WSHShell = CreateObject("WScript.Shell")

     WSHShell.Run("""" & prog & """")
   end Function

</script>

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
pakt ie niet, nog steeds geen spaties in de namen, maar maakt niet uit, want ik heb nu die tip gehad met DELIMS en nu kan ik met die batch de zooi wel inkorten.

btw. toch bedankt.

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
het probleem is opgelost!!! ik heb nog meer gezocht, en ben een programmaatje tegengekomen genaamd RunProtocolHandler, wat zorgt dat als je run: in je link zet (voorbeeld "run:explorer.exe") hij de link automatisch start (btw, hij is hier te vinden)

edit:
bedankt voor jullie hulp _/-\o_

[ Voor 10% gewijzigd door nick_haak op 09-12-2004 21:22 ]

Pagina: 1