[XP] cmd voor een dirlisting?*

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Dragonheart-03
  • Registratie: Februari 2003
  • Laatst online: 08-08 03:19
Mapstructuur:
D:\doc
D:\doc\docs A
D:\doc\docs B
D:\doc\docs A\a1
D:\doc\docs A\a2
D:\doc\docs B\b1
D:\doc\docs B\b2
In de sub-subdir a1, a2, b1 en b2 bevinden zich een aantal txt, doc, jpg bestanden. Ik zou nu een script of batch willen draaien dat een TXT bestand aanmaakt met netjes onder elkaar al de bestandsnamen van de bestanden in een welbepaalde map. Dit txt bestand zou dan de naam a1.txt dienen te krijgen, dus van de subsubmap. Het txt bestand zou ook in de subsubmap geplaatst dienen te worden. Bij voorkeur kan het script gerunned worden vanaf de commandprompt of dmv dubbelklik. Ik heb al een batch bestandje gemaakt om dit te doen met 1 directory (als argument mee te geven), maar dan dien ik het dus voor elke map opnieuw in te voeren. Dus, mocht iemand een idee hebben om dit te laten werken d.m.v. 1 commando voor al de submappen dan hoor ik dat graag.
Bij voorkeur zou ik aan de commandprompt ingeven: c\dirlist 'doc' en dat het dan dus al de sub en subsubmappen zou aflopen en de bijbehorende txt's in de mappen zou plaatsen. Mapnamen bevatten trouwens, spaties.

Vragen ? Tips? Ik hoor het graag!

Acties:
  • 0 Henk 'm!

  • fsfikke
  • Registratie: Maart 2003
  • Niet online

fsfikke

* * * *

Ik snap je verhaal niet echt, maar ik denk dat je hier wel iets mee kan:

code: Maplistmaker.cmd
1
dir /b > c:\maplist.txt

[ Voor 10% gewijzigd door fsfikke op 27-06-2007 00:13 ]

Zijn spaties in de aanbieding ofzo? www.spatiegebruik.nl


Acties:
  • 0 Henk 'm!

  • Dragonheart-03
  • Registratie: Februari 2003
  • Laatst online: 08-08 03:19
Bovenstaande code zou ik dan voor elke map moeten ingeven, de bedoeling van het script is net, 1 keer een commando ingeven en dan voor elke submap een txt bestand aan te maken met daarin een opsomming van alle bestandsnamen in die bepaalde submap.

Acties:
  • 0 Henk 'm!

  • fsfikke
  • Registratie: Maart 2003
  • Niet online

fsfikke

* * * *

code:
1
dir /a:D /b

Zo krijg je een netjes lijstje van alle sub-dirs. Daarmee kan je dan weer verder.
Ookal moet ik toegeven dat mijn DOS kennis hier op houdt O-)
Maar ik kan me niet voorstellen dat je hier geen bestaand tooltje voor kan vinden. Anders moet je je wat dieper storten op deze materie.

[ Voor 29% gewijzigd door fsfikke op 27-06-2007 00:20 ]

Zijn spaties in de aanbieding ofzo? www.spatiegebruik.nl


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 06-08 18:47

TheBorg

Resistance is futile.

Laat maar, lezen is moeilijk.

[ Voor 95% gewijzigd door TheBorg op 27-06-2007 00:25 ]


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

OntCAPSt en dit is iets wat je ook wel had kunnen vinden door gewoon dir /? te doen.
We zien hier wel graag dat je zelf al het een en ander uitzoekt voor je een topic opent, zie de Windows Clients - Policy en de korte ForumFAQ die je bij het aanmelden ook gelezen hebt :)
Het stuk vooronderzoek mist hier wel behoorlijk ;)

In de Windows Help staan genoeg voorbeelden hoe je met de commandprompt je zaken kan regelen.
Verder had je dit soort opdrachten ook heel goed kunnen vinden met wat Googlewerk.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

dir d: /s /b >bleh.txt

[ Voor 5% gewijzigd door BtM909 op 27-06-2007 09:15 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 06-08 18:47

TheBorg

Resistance is futile.

alt-92 schreef op woensdag 27 juni 2007 @ 09:12:
OntCAPSt en dit is iets wat je ook wel had kunnen vinden door gewoon dir /? te doen.
We zien hier wel graag dat je zelf al het een en ander uitzoekt voor je een topic opent, zie de Windows Clients - Policy en de korte ForumFAQ die je bij het aanmelden ook gelezen hebt :)
Het stuk vooronderzoek mist hier wel behoorlijk ;)

In de Windows Help staan genoeg voorbeelden hoe je met de commandprompt je zaken kan regelen.
Verder had je dit soort opdrachten ook heel goed kunnen vinden met wat Googlewerk.
Zo heel eenvoudig is het in dit geval niet, het is in ieder geval niet op te lossen met één commando zoals sommige suggereren.

Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 18:29
waarom wil je per se die bestanden in de subdirs opslaan? waar wil je het voor gebruiken?

kun je niets met het commando tree ?

Acties:
  • 0 Henk 'm!

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 29-05 15:34

RRX

@life-

tree /F /A > textbestand.txt

mijn T.net systeemspecspagina


Acties:
  • 0 Henk 'm!

  • Dragonheart-03
  • Registratie: Februari 2003
  • Laatst online: 08-08 03:19
Leuke reacties: alleen wordt mijn vraag meestal verkeerd begrepen.
De eenvoudige dir en dir >> filename.txt werkt in dit geval niet.
Met Microsoft Windows Powershell kom ik een eind maar nog niet waar ik zijn moet:



CLS
foreach ($file in get-childitem)
{
get-childitem $file -recurse | format-table name | out-file c:\$file\$file.txt
}

Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Dragonheart-03 schreef op woensdag 27 juni 2007 @ 11:51:
Leuke reacties: alleen wordt mijn vraag meestal verkeerd begrepen.
Dan zou het ook wel eens kunnen dat de vraag niet volledig duidelijk gesteld wordt ;)

Maar met de recursieve functies ben je in ieder geval op de juiste weg.
Het gaat waarschijnlijk wel makkelijk als je een schematische aanpak uitwerkt, waarbij je per subdirectory een subprocedure aanroept die in de folder een dirlisting maakt.

Dat kan zowel met WMI, batch als PS uitgevoerd worden :)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:27

Hero of Time

Moderator LNX

There is only one Legend

Van wat ik ervan begrijp wil hij voor docs\docs a\ een bestand inhoud.txt in die map willen met de inhoud van alleen die map, in docs\docs b\ hetzelfde, zo dus per map een eigen inhoud.txt zetten. Dit zou dus zijn iets in de zin van:
dir /b /s "D:\Docs\Docs a" > inhouda.txt
dir /b /s "D:\Docs\Docs b" > inhoudb.txt
enz, en dat dan in een for lus. Hoe, ik heb geen idee, maar het moet makkelijk te doen zijn lijkt mij.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

code:
1
tree X: /F

Wil je het outputten naar een bestandje dan doe je dit:
code:
1
tree X: /F >>c:\dirlist.txt

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • Marzman
  • Registratie: December 2001
  • Niet online

Marzman

They'll never get caught.

Hero Of Time schreef op woensdag 27 juni 2007 @ 15:00:
Van wat ik ervan begrijp wil hij voor docs\docs a\ een bestand inhoud.txt in die map willen met de inhoud van alleen die map, in docs\docs b\ hetzelfde, zo dus per map een eigen inhoud.txt zetten. Dit zou dus zijn iets in de zin van:
dir /b /s "D:\Docs\Docs a" > inhouda.txt
dir /b /s "D:\Docs\Docs b" > inhoudb.txt
enz, en dat dan in een for lus. Hoe, ik heb geen idee, maar het moet makkelijk te doen zijn lijkt mij.
Een batchfile met daarin een van de genoemde opties voor elke directory zou dan voldoende moeten zijn.

☻/ Please consider the environment before printing this signature
/▌
/ \ <-- This is bob. copy and paste him and he will soon take over the world.


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Marzman schreef op woensdag 27 juni 2007 @ 15:41:
[...]

Een batchfile met daarin een van de genoemde opties voor elke directory zou dan voldoende moeten zijn.
...maar niet praktisch, want dan mag je bijvoorbeeld voor 20457 subdirs dat script 20457 keer op gaan starten ;)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • Ruuddie
  • Registratie: Augustus 2001
  • Laatst online: 09:54
Als je VBS kan, we hebben op school wat geschreven om te oefenen wat hierop lijkt:
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'  Dit script doorloopt de hele directorystructuur en drukt alle folders en
'  filenamen af die opgeslagen zijn.
'  Auteur: Ruud van Strijp
'  Datum : 3-4-2007

Option Explicit
Dim  oFS1, aExtension 

'************ Begin hoofdprogramma, aanmaken benodigde objecten   **********

SET oFS1 = createObject("scripting.FileSystemObject")
aExtension = wscript.arguments(1)
WScript.Echo "De extensie is " & aExtension

' Hier wordt de subroutine aangeroepen
' let op, indien meerdere parameters doorgegeven moeten worden geen haakjes plaatsen, maar parameters scheiden door een ,
toonFiles (wscript.arguments(0))  

'***************** Einde hoofdprogramma   *******************

' ******* Hier worden de subroutines geplaatst
SUB toonFiles (foldername)
DIM oFolder, oFiles, oSubFolders, aFolder, aFile

SET oFolder = oFS1.getFolder (foldername)

wscript.echo foldername & " - Aantal subdirs: " &  oFolder.subfolders.count
'Doorloop alle subfolders ...
FOR each afolder in oFolder.SubFolders
   'Roep de procedure weer aan maar dan met de 'subfolder' als ROOT.
   toonfiles (aFolder.path)
NEXT 'folder
'Doorloop alle files ...
SET oFiles = oFolder.files
FOR each afile in oFiles
    If ucase(oFS1.GetExtensionName(afile.name)) = ucase(aExtension) Then
        wscript.echo vbTab & "Filename " & afile.path
    End IF
NEXT 'file
END SUB

Je moet twee variablen meegeven bij het uitvoeren van het script: De eerste variable is de map, de 2e variable de extensie die moet worden geprint.

Ik moet nu weg en heb dus geen tijd om het 100% te maken zoals jij t wil, maar misschien kan je hier wat mee :)

[ Voor 0% gewijzigd door een moderator op 27-06-2007 15:52 . Reden: mooie tags voor VBscript :) ]


Acties:
  • 0 Henk 'm!

  • Marzman
  • Registratie: December 2001
  • Niet online

Marzman

They'll never get caught.

alt-92 schreef op woensdag 27 juni 2007 @ 15:43:
[...]

...maar niet praktisch, want dan mag je bijvoorbeeld voor 20457 subdirs dat script 20457 keer op gaan starten ;)
Dat kan dan toch 20457 keer in een script (wel even een werk om dat er in te zetten dan ja ;) )

☻/ Please consider the environment before printing this signature
/▌
/ \ <-- This is bob. copy and paste him and he will soon take over the world.


Acties:
  • 0 Henk 'm!

  • wens
  • Registratie: Juni 2002
  • Laatst online: 08-08 16:58
Even forfiles uit de Resource Kit van Windows 2003 halen.

forfiles /s /c "cmd /c if @isdir==TRUE dir /b @path | findstr /V /C:"@file.txt" > @path\@file.txt"

[ Voor 35% gewijzigd door wens op 27-06-2007 17:12 ]


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Marzman schreef op woensdag 27 juni 2007 @ 16:17:
[...]

Dat kan dan toch 20457 keer in een script (wel even een werk om dat er in te zetten dan ja ;) )
[mierenneukmodus]
20456 keer, want de eerste roep je zelf aan ;)
[/mierenneukmodus]

In ieder geval, genoeg oplossingen voorhanden waar wat mee te doen is :)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device

Pagina: 1