webForumDet fria alternativet

Spara katalogstruktur till .txt

Windows

12 svar · 730 visningar · startad av Calippo

Medlem sedan aug. 2002536 inlägg
Frågan#1

Jag vet att detta program finns, men jag hittar det inte....

Vill ha så att när man högerklickar på en mapp i utforskaren så ska man kunna spara strukturen till en txt fil, även svenska tecken ska fungera.
Det räcker med mappnamnen, inte alla filer. Men om man kan välja vilket man vill ha så är ju det ett plus.
Gratis ska det vara med ;)

Det enda jag hittar är en bat fil på MS hemsida... men det är ju inte direkt samma sak. Den klarar för övrigt inte svenska tecken.

printdir.bat

@echo off
dir %1 /-p /o:gn > "%temp%\Listing"
start /w notepad "%temp%\Listing"
rem start /w notepad /p "%temp%\Listing"
del "%temp%\Listing"
exit
Medlem sedan juni 20006 022 inlägg
#2

Skapa en fil, lista.bat

dir %1 /D > %2

Sen kör du den med: lista sökväg filnamn

Ex: lista c:\inetpub\wwwroot websajter.txt

Medlem sedan aug. 2002536 inlägg
#3

Nu fattade jag nada. Kan inte det där med bat filer så bra.

Jag skapade en batfil som jag döpte till lista.bat.
Den innehåller koden "dir %1 /D > %2".

Sen då?

Vad menar du med:
"Sen kör du den med: lista sökväg filnamn
Ex: lista c:\inetpub\wwwroot websajter.txt"

Medlem sedan juni 20031 837 inlägg
#4

i dos-prompten skriver du

lista c:\inetpub\wwwroot websajter.txt

Tänk på att lista.bat antingen ska ligga i katalogen du står i eller ligga i en katalog som finns med i PATH-variabeln

Medlem sedan juni 20006 022 inlägg
#5

Nu kan du köra din bat-fil. sökvägen blir %1, filnamnet blir %2.

Skriver du t.ex.
lista c:\windows dataspel.txt

då kommer du få en fil som heter dataspel.txt och innehåller en lista över mapparna i windows-mappen.

Medlem sedan nov. 20051 317 inlägg
#6

du kör lista.bat så här i kommandoprompten:

lista c:\inetpub\wwwroot minTextfil.txt

där sökvägen är den mappen du vill skriv till din textfil... och "minTextfil.txt" är namnet på den textfil du vill skapa!

Om jag förstått det rätt :)

EDIT: OMG! Jag var inte ens nästan först! :e

Medlem sedan aug. 2002536 inlägg
#7

Tackar för tipsen, men jag måste tyvärr säga att det skriptet var totalt värdelöst, sorry...

- Mapparna listas inte under varandra, utan tabb separerade eller nåt...
- Klarar inte å, ä och ö

även svenska tecken ska fungera.
Medlem sedan juni 20006 022 inlägg
#8
dir %1 /AD > %2

Ska det vara, då får du en lista på höjden istället, och jag får med svenska tecken när jag kör det.

Medlem sedan aug. 20039 340 inlägg
#9

Använd kommandot tree, (Med växeln /a) så har du en sak avklarad. Vad gäller svenska tecken blir det svårare, d måste du ha något program som konverterar tecknen för dig.

Medlem sedan aug. 2002536 inlägg
#10

Nästa problem är att den inte listar undermappar till mapparna.

inetpub
--- wwwroot
--- --- testsida1
--- --- --- images
--- --- testsida2
--- --- --- images

osv...

Så här ser det ut i min txt fil:

 Volymen i enhet C har ingen etikett.
 Volymens serienummer „r 2868-D6EA

 Inneh†ll i katalogen c:\inetpub

2007-11-02  09:58    <KAT>          .
2007-11-02  09:58    <KAT>          ..
2007-11-02  10:05    <KAT>          AdminScripts
2007-11-02  09:58    <KAT>          iissamples
2007-11-02  09:58    <KAT>          mailroot
2007-11-02  09:58    <KAT>          Scripts
2007-11-07  08:09    <KAT>          wwwroot
               0 fil(er)                   0 byte
               7 katalog(er)   8ÿ029ÿ069ÿ312 byte ledigt

???

8ÿ029ÿ069ÿ312 byte ledigt
Medlem sedan juni 20006 022 inlägg
#11

Lägger du till /S så får du undermapparna också.

dir %1 /AD /S > %2
Medlem sedan juni 20014 421 inlägg
#12

Ett sådant script i vbscript är inte speciellt svårt att skriva, plus att det hanterar svenska tecken korrekt. Har inte tid att svänga ihop nåt sånt nu dock. Senare kke. :)

Medlem sedan aug. 20039 340 inlägg
#13
' Settings
Const tabseparator = "| "	' Replace with "  " or "--" if you wish
Const dirprefix = "\"

Dim fs, thepath, conts
Set fs = CreateObject("Scripting.FileSystemObject")

on error resume next
	For each part in WScript.Arguments
		thepath = thepath & " " & part
	Next
on error goto 0

thepath = ltrim(thepath)

if err.number then
	conts = ListFolderContents(".", "")
	wscript.echo conts
else
	conts = ListFolderContents(thepath, "")
	wscript.echo conts
end if

'wscript.echo WScript.Arguments(0) 

Set fs = Nothing

Function ListFolderContents(path, tablevel)
	Dim retval
	retval = ""
	
	set folder = fs.GetFolder(path)

	if tablevel = "" then
		retval = folder.path & chr(13) & chr(10)
	else
		retval = retval & tablevel & dirprefix  & folder.name & chr(13) & chr(10)
	end if

	For each item in folder.Files
		retval = retval & tablevel & tabseparator & item.name & chr(13) & chr(10)
	Next

	For each item in folder.SubFolders
		retval = retval & ListFolderContents(item.Path, tablevel & tabseparator)
	Next
	set folder = Nothing

	ListFolderContents = retval
End Function

Tar en katalog som inparameter. Skriver dock inte till n ågon fil, där får någon annan ta över facklan. Huuu, vilket äckligt språk VBScript är ändå.

254 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)