# Run external program escape charaters

**URL:** https://discourse.julialang.org/t/run-external-program-escape-charaters/60896
**Category:** New to Julia
**Created:** [May 10, 2021, 3:14pm UTC](https://discourse.julialang.org/t/run-external-program-escape-charaters/60896 "2021-05-10T15:14:12Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![LinasBa](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/linasba/32/20957_2.png) [@LinasBa](https://discourse.julialang.org/u/LinasBa)
#### Post date: [May 10, 2021, 3:14pm UTC](https://discourse.julialang.org/t/run-external-program-escape-charaters/60896/1 "2021-05-10T15:14:12Z")

</div>

Hello,

I’m trying to run .exe file, but Julia command doesn’t seem to work correctly.

.bat file that works:

```shell
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "C:/Users/User/AppData/Local/Programs/My Program.exe""

```

Julia command doesn’t work:

```julia
run(`cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "C:/Users/User/AppData/Local/Programs/My Program.exe""`; wait=false)

Process(`cmd /min /C 'set __COMPAT_LAYER=RUNASINVOKER && start C:/Users/User/AppData/Local/Programs/My' Program.exe`, ProcessRunning)

```

I couldn’t figure out how to fix this.

---

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [May 10, 2021, 3:21pm UTC](https://discourse.julialang.org/t/run-external-program-escape-charaters/60896/2 "2021-05-10T15:21:10Z")

</div>

Escape the embedded quotes: `run(`cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"C:/Users/User/AppData/Local/Programs/My Program.exe\""`; wait=false)`

---

<div class="post-metadata">

### Author: ![LinasBa](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/linasba/32/20957_2.png) [@LinasBa](https://discourse.julialang.org/u/LinasBa)
#### Post date: [May 10, 2021, 6:15pm UTC](https://discourse.julialang.org/t/run-external-program-escape-charaters/60896/3 "2021-05-10T18:15:25Z")

</div>

> [@stevengj](#):
>
> run(`cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"C:/Users/User/AppData/Local/Programs/My Program.exe\""`; wait=false)

Thanks for reply, but that didn’t work for me. Getting windows error:

```julia
julia> run(`cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"C:/Users/User/AppData/Local/Programs/My Program.exe\""`; wait=false)
Process(`cmd /min /C 'set __COMPAT_LAYER=RUNASINVOKER && start "" "C:/Users/User/AppData/Local/Programs/My Program.exe"'`, ProcessRunning)

Windows cannot find '\\'.

```

---

<div class="post-metadata">

### Author: ![bernhard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bernhard/32/2619_2.png) [@bernhard](https://discourse.julialang.org/u/bernhard)
#### Post date: [May 12, 2021, 7:02am UTC](https://discourse.julialang.org/t/run-external-program-escape-charaters/60896/4 "2021-05-12T07:02:19Z")

</div>

I am not sure how to fix your original problem.  
What is the purpose of the two double quotes after start?

But as a workaround (if you have not done so already) you could consider to create the .bat file with Julia and then run it.  
you may want to consider `mktempdir()` to create a temporary directory.

---

<div class="post-metadata">

### Author: ![LinasBa](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/linasba/32/20957_2.png) [@LinasBa](https://discourse.julialang.org/u/LinasBa)
#### Post date: [May 12, 2021, 8:22am UTC](https://discourse.julialang.org/t/run-external-program-escape-charaters/60896/5 "2021-05-12T08:22:39Z")

</div>

Thanks for suggestion. Before implementing your workaround I thought I’d give one last run at quoting random parts of command. I finally succeeded, but have no idea why this is working and previous one isn’t.

```julia
run(`cmd /min /C set __COMPAT_LAYER=RUNASINVOKER '&&' start '' 'C:/Users/User/AppData/Local/Programs/My Program.exe'`; wait=false)

```

Double quotes after start are needed to pass second argument.
