-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathhtree.cmd
More file actions
131 lines (122 loc) · 4.21 KB
/
htree.cmd
File metadata and controls
131 lines (122 loc) · 4.21 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION&::(Don't pollute the global environment with the following)
::**********************************************************************
SET $NAME=%~n0
SET $DESCRIPTION=Graphically displays the folder structure of a drive or path in HTML
SET $AUTHOR=Erik Bachmann, ClicketyClick.dk [ErikBachmann@ClicketyClick.dk]
SET $SOURCE=%~f0
::@(#)NAME
::@(-) The name of the command or function, followed by a one-line description of what it does.
::@(#) %$NAME% -- %$DESCRIPTION%
::@(#)
::@(#)SYNOPSIS
::@(-) In the case of a command, a formal description of how to run it and what command line options it takes.
::@(-) For program functions, a list of the parameters the function takes and which header file contains its definition.
::@(-)
::@(#) %$Name% [drive:][path] [/F] [/A] [html_tree.html] [2>ascii_tree.txt]
::@(#)
::@(#) /F Display the names of the files in each folder.
::@(#) /A Use ASCII instead of extended characters. (NO HTML)
::@(#)
::@(#)OPTIONS
::@(-) Flags, parameters, arguments (NOT the Monty Python way)
::@(#) -h Help page
::@(#)
::@ (#)
::@(#)DESCRIPTION
::@(-) A textual description of the functioning of the command or function.
::@(#) Uses the DOS command TREE and convert the tree structure to HTML
::@(#)
::@(#)OUTPUT
::@(#) STDOUT(1) HTML version of tree
::@(#) STDERR(2) TEXT (ASCII/Extended) version
::@(#)
::@(#)EXAMPLES
::@(-) Some examples of common usage.
::@(#) hTree >html_tree.html 2>ascii_tree.txt
::@(#)
::@ (#)EXIT STATUS
::@(-) Exit status / errorlevel is 0 if OK, otherwise 1+.
::@ (#)
::@ (#)ENVIRONMENT
::@(-) Variables affected
::@ (#)
::@ (#)
::@ (#)FILES,
::@(-) Files used, required, affected
::@ (#)
::@ (#)
::@ (#)BUGS / KNOWN PROBLEMS
::@(-) If any known
::@ (#)
::@ (#)
::@(#)REQUIRES
::@(-) Dependecies
::@(#) _Debug.cmd Setting up debug environment for batch scripts
::@(#) _GetOpt.cmd Parse command line options and create environment vars
::@(#)
::@ (#)SEE ALSO
::@(-) A list of related commands or functions.
::@ (#)
::@ (#)
::@ (#)REFERENCE
::@(-) References to inspiration, clips and other documentation
::@ (#) Author:
::@ (#) URL:
::@ (#)
::@(#)
::@(#)SOURCE
::@(-) Where to find this source
::@(#) %$Source%
::@(#)
::@ (#)AUTHOR
::@(-) Who did what
::@ (#) %$AUTHOR%
::*** HISTORY **********************************************************
::SET $VERSION=YYYY-MM-DD&SET $REVISION=hh:mm:ss&SET $COMMENT=Init / Description [xx.xxx]
::SET $VERSION=2009-04-17&SET $REVISION=11:01:00&SET $COMMENT=ErikBachmann / Initial [00.000]
::SET $VERSION=2011-10-12&SET $REVISION=14:34:00&SET $COMMENT=ErikBachmann / Initial [01.001]
::SET $VERSION=2015-02-19&SET $REVISION=03:04:07&SET $COMMENT=Autoupdate / ErikBachmann
::SET $VERSION=2015-10-08&SET $REVISION=11:20:00&SET $COMMENT=GetOpt: Calling usage on -h and exit on error / ErikBachmann
SET $VERSION=2015-10-21&SET $REVISION=19:19:00&SET $Comment=Update usage/ErikBachmann
::**********************************************************************
::@(#)(c)%$Version:~0,4% %$Author%
::**********************************************************************
CALL "%~dp0\_DEBUG"
CALL "%~dp0\_Getopt" %*&IF ERRORLEVEL 1 EXIT /B 1
:HTREE.main
:: Header
ECHO ^<pre^>
SET _Path=%* .
::set _Path
::IF "\"=="%_Path:~-1%" SET _Path=%_Path:~0,-1%
SET _Path=%_Path:\ = %
ECHO _Path=[%_Path%]
:: Loop tree
FOR /F "TOKENS=* DELIMS=¤" %%a IN ('TREE %_Path:~0,-1%') DO (
SET _=%%a
:: Replace \---
SET _=!_:ÀÄÄÄ=^└^─^─^─!
:: Replace |---
SET _=!_:ÃÄÄÄ=^├^─^─^─!
:: Replace |
SET _=!_:³=^│!
:: Replace blanks
SET _=!_: =^ !
:: Replace danish lower case letters æøå
SET _=!_:‘=^æ!
SET _=!_:›=^ø!
SET _=!_:†=^å!
:: Replace danish UPPER case letters ÆØÅ
SET _=!_:’=^Æ!
SET _=!_:=^Ø!
SET _=!_:=^Å!
:: Print ASCII version to STDERR
>>&2 ECHO %%a
:: Print HTML version to STDOUT
ECHO !_!
)
:: Footer
ECHO ^</pre^>
GOTO :EOF
::*** End of File ******************************************************