# How call to value of Windows vars from Julia?

**URL:** <https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137>\
**Category:** General Usage\
**Created:** [May 12, 2019, 11:57am UTC](https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137 "2019-05-12T11:57:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![programista](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/programista/32/5372_2.png) [@programista](https://discourse.julialang.org/u/programista)\
**Post date:** [May 12, 2019, 11:57am UTC](https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137/1 "2019-05-12T11:57:04Z")

</div>

I try working with \*.bat and \*exe file in window from Julia level.  
Is file vol.bat with:

```julia
cmd
vol

```

inside.

I am trying get value of number HD to some julia variable

```julia
julia> myc=`vol.bat`
`vol.bat`

julia> x=run(myc)

C:\Users\PC\AppData\Local\Julia-0.7.0>cmd
Microsoft Windows [Wersja 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.

C:\Users\PC\AppData\Local\Julia-0.7.0>vol
 Wolumin w stacji C nie ma etykiety.
 Numer seryjny woluminu: 0EA8-3B46
Process(`vol.bat`, ProcessExited(0))

C:\Users\PC\AppData\Local\Julia-0.7.0>exit

julia> x
Process(`vol.bat`, ProcessExited(0))

```

How to do it ? I expect somthink like:

```julia
x==" Wolumin w stacji C nie ma etykiety.
 Numer seryjny woluminu: 0EA8-3B46"

```

Propably is simplest way …  
Paul

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [May 12, 2019, 12:16pm UTC](https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137/2 "2019-05-12T12:16:49Z")

</div>

```julia
shell> cat vol.bat
vol

julia> myc = `vol.bat`
`vol.bat`

julia> x = read(myc, String)
"\r\nC:\\Users\\Kristoffer>vol\r\n Volume in drive C has no label.\r\n Volume Serial Number is 2458-0EE6\r\n"

julia> print(x)

C:\Users\Kristoffer>vol
 Volume in drive C has no label.
 Volume Serial Number is 2458-0EE6

```

maybe

---

<div class="post-metadata">

**Author:** ![programista](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/programista/32/5372_2.png) [@programista](https://discourse.julialang.org/u/programista)\
**Post date:** [May 12, 2019, 12:46pm UTC](https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137/3 "2019-05-12T12:46:42Z")

</div>

Yes, yes yes,  
Thanks  
if

```julia
t="\r\nC:\\Users\\Kristoffer>vol\r\n Volume in drive C has no label.\r\n Volume Serial Number is 2458-0EE6\r\n"

julia> Meta.parse(t)
ERROR: Base.Meta.ParseError("\"\\\" is not a unary operator")
Stacktrace:
 [1] #parse#1(::Bool, ::Bool, ::Bool, ::Function, ::String, ::Int64) at .\meta.jl:129
 [2] #parse at .\none:0 [inlined]
 [3] #parse#4(::Bool, ::Bool, ::Function, ::String) at .\meta.jl:164
 [4] parse(::String) at .\meta.jl:164
 [5] top-level scope at none:0

```

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [May 12, 2019, 8:27pm UTC](https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137/4 "2019-05-12T20:27:50Z")

</div>

That’s not Julia code, so calling `Meta.parse` on it fails with a parse error.

---

<div class="post-metadata">

**Author:** ![tamasgal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamasgal/32/27946_2.png) [@tamasgal](https://discourse.julialang.org/u/tamasgal)\
**Post date:** [May 12, 2019, 9:14pm UTC](https://discourse.julialang.org/t/how-call-to-value-of-windows-vars-from-julia/24137/5 "2019-05-12T21:14:07Z")

</div>

You can use `split()` for example to parse the text. I assume you searched for “parse” and found that `Meta.parse`, which as Stefan already told not what you want.

Here are some examples:

```julia
julia> t = "\r\nC:\\Users\\Kristoffer>vol\r\n Volume in drive C has no label.\r\n Volume Serial Number is 2458-0EE6\r\n"
"\r\nC:\\Users\\Kristoffer>vol\r\n Volume in drive C has no label.\r\n Volume Serial Number is 2458-0EE6\r\n"

julia> split(t, "\r\n")
5-element Array{SubString{String},1}:
 ""
 "C:\\Users\\Kristoffer>vol"
 " Volume in drive C has no label."
 " Volume Serial Number is 2458-0EE6"
 ""

julia> split(t)[end]
"2458-0EE6"

```

Or regular expressions using `match`:

```julia
julia> match(r"Serial Number is (.*)\r\n", t)[1]
"2458-0EE6"

```
