[XP/2000] Een dirlist krijgen met de juiste directory naam.*

Pagina: 1
Acties:

  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
Allereerst wist ik niet goed waar het te plaatsen dit topic, ik denk dat het hier nog het meest thuishoort :)

Ik heb momenteel een .bat fileke met de volgende code:

code:
1
@Dir/b/on *.* > " Filelist.txt"


Nu is het eigenlijk de bedoeling dat dit bestandje de naam krijgt van de directory waar het inzit, iemand een idee hoe dit te doen in DOS ?

We gebruiken dit om het zoeken naar bepaalde bestanden en wanneer deze allemaal gewijzigd worden bij te houden.

Diablo 3 Profiel - WoW Warrior


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Welke Windows draai je?
Onder Windows XP heb je de environment variabele '%CD%' welke de current working directory teruggeeft :)

  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
Het is op Windows 2000 Server en Windows XP (vergeten bijzetten sorry)

Diablo 3 Profiel - WoW Warrior


Verwijderd

code:
1
2
for /f "tokens=3*" %%a in ('dir^|find /i "directory of"') do set currentpath=%%a %%b %%c %%d
dir /on>>%currentpath%.txt


edit: hmmm %cd% werkt ook prima op win2k :)

[ Voor 28% gewijzigd door Verwijderd op 06-10-2004 13:15 ]


  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
Het werkt mits kleine wijzigingen:

code:
1
2
for /f "tokens=3*" %%a in ('dir^|find /i "directory of"') do set currentpath=%%a %%b
dir/b/on >> "%currentpath%.txt"


Maar ik krijg het maar niet in de dir zelf te staan, het komt altijd op m'n C te staan :(

Diablo 3 Profiel - WoW Warrior


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je kan dus gewoon %cd% gebruiken :)

  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
Het lukt dus voor het bestand de juiste bestandsnaam te geven en juist inhoud, maar het bestand komt altijd rechtstreeks op c:\ te staan en niet in de juiste directory zelf :(

Diablo 3 Profiel - WoW Warrior


Verwijderd

c:\noobmode> echo test >>%cd%\%cd%.txt

[ Voor 89% gewijzigd door Verwijderd op 07-10-2004 15:16 ]


  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
Sja, ik weet niet wat je bedoeld, maar dit had ik ook al geprobeerd maar dit werkt ook niet...

En het is heus niet nodig te beginnen flamen van noob.

Moest je nu zelf eens een werkende oplossing gegeven hebben, maar blijkbaar lukt het jou ook niet.

Diablo 3 Profiel - WoW Warrior


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

CBA schreef op 07 oktober 2004 @ 14:06:
Het lukt dus voor het bestand de juiste bestandsnaam te geven en juist inhoud, maar het bestand komt altijd rechtstreeks op c:\ te staan en niet in de juiste directory zelf :(
Vertel dan even wat je precies uitvoert met welke precieze naam in welke precieze directory - dus geef ons een simpele, efficiente stappen plan wat je doet en wat er dan gebeurt :)

  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
elevator schreef op 08 oktober 2004 @ 12:58:
Vertel dan even wat je precies uitvoert met welke precieze naam in welke precieze directory - dus geef ons een simpele, efficiente stappen plan wat je doet en wat er dan gebeurt :)
Ik heb een directory 'mijn documenten' op mijn C-Schijf
In deze directory staat er een bestandje 'lijst.bat' met volgende code:

code:
1
2
for /f "tokens=3,*" %%a in ('dir^|find /i "directory of"') do set currentpath=%%a %%b
dir/b/on >> "%cd%.txt"


Hierbij maakt de computer een bestandje aan 'mijn documenten.txt' maar op de C schijf zelf, niet in de map.

Als ik dit uitvoer:

code:
1
2
for /f "tokens=3,*" %%a in ('dir^|find /i "directory of"') do set currentpath=%%a %%b
dir/b/on >> "%cd%\%cd%.txt"


Krijg ik deze error te zien:

code:
1
2
C:\Mijn documenten>dir/b/on  1>>"C:\Mijn documenten\C:\Mijn documenten.txt"
The filename, directory name, or volume label syntax is incorrect.

Diablo 3 Profiel - WoW Warrior


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Met dit commando:

code:
1
for /f "tokens=*" %i in ("%cd%") do @set dir_path=%~nxi


kan je in 'dir_path' enkel de directory naam zetten en niet de directory seperator e.d. - hiermee wat creatief scripten moet je wel weer op weg helpen gok ik :)

  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
Ik krijg volgende error:

code:
1
cd~nxi was unexpected at this time.


Wanneer ik die lijn uitvoer.

Diablo 3 Profiel - WoW Warrior


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Als je het in een batchfile zet zal je op de juiste plekken de '%' moeten escapen door twee maal een '%' neer te zetten, maar omdat je dat in je eerdere voorbeeld al wel deed ging ik er eigenlijk van uit dat je dat wel wist :)

  • CBA
  • Registratie: November 2000
  • Laatst online: 03-05 20:49

CBA

een vat, een vat, een vat !

Topicstarter
elevator schreef op 09 oktober 2004 @ 11:24:
Als je het in een batchfile zet zal je op de juiste plekken de '%' moeten escapen door twee maal een '%' neer te zetten, maar omdat je dat in je eerdere voorbeeld al wel deed ging ik er eigenlijk van uit dat je dat wel wist :)
Ja ik had het éénmaal gedaan, was er één vergeten, thnx nu werkt het :)

Diablo 3 Profiel - WoW Warrior


Verwijderd

voor alle duidelijkheid de complete code zou wel makkelijk zijn :)
Pagina: 1