我在Windows上运行bash(不是Windows 10上的新奇事物,mingw bash),而是shake
。根据我的理解,Windows上的命令可以编辑cmd
的环境。在我的用例中,我不想对如何更改环境做出假设,我只想让下一个命令在更改的环境中运行。这可能吗?
理想情况类似于
(Environment env, Stdout out) <- cmd Shell (Cwd dir) "path/to/script.cmd" [arg1] [arg2]
-- Do stuff with out
cmd Shell (Cwd dir) (Env env) "env/dependent/command.cmd"
我也很高兴在同一个shell中运行这两个命令,即使它意味着我不能Do stuff with out
但是我无法弄清楚如何做到这一点
我想makefile中的术语与.ONESHELL:
答案 0 :(得分:1)
Shake中的每个posts[
->broadmatch {object1{name, id}, object2{name, id}...}
->wikipedia [object1{name, id}, object2{name, id}...]
]
调用都是独立的,因此任何环境变量都不会持久存在。假设您想将cmd
视为黑盒子,有两种选择:
script.cmd
。Stdout out <- cmd Shell (Cwd dir) "path/to/script.cmd" arg1 arg2 "&& env/dependent/command.cmd"
捕获环境,使用path/to/script.cmd .... && set
捕获它,解析它,然后使用Stdout
提供环境。如果您想多次重复使用Env
,那么第二个可能会更快,但两者都应该有效。
第二种方法的工作实现,包括Env
输出解析器,可用here (by @fakedrake)。