[英]How do I change directory in command line with Clojure?
我正在寻找的是Windows命令行中的这种命令行交互:
C:\temp1>clj some_script.clj
C:\temp2>
some_script.clj包含以下内容:
(cd "c:\\temp2")
所以问题是 - 我如何实现功能cd? 已经尝试过clojure.java.shell,但它看起来不像我需要的lib。 这可能是一个简单的问题,问题可能是我不能流利使用Java?!
你不能用Java做到这一点,所以你不能在Clojure中做到这一点。 请参阅使用Java更改当前工作目录?
clojure可以做到这一点。 您只需要更改名为*sh-dir*
的动态全局变量。 在您的repl中运行以下代码:
(use '[clojure.java.sh])
(sh "ls")
=> {:exit 0, :out "LICENSE\nREADME.md\nauto_deploy.iml\ndoc\nproject.clj\nresources\nsrc\ntarget\ntest\n", :err ""}
(binding [*sh-dir* "c:/"] (sh "ls"))
{:exit 0,
:out "$360Section
$GetCurrent
$Recycle.Bin
Boot
Documents and Settings
ImbaMallLog.txt
Intel
MSOCache
OEMSY
PerfLogs
Program Files
Program Files (x86)
ProgramData
Python27
Recovery
System Volume Information
Users
Windows
apache-ant-1.9.3
bootmgr
hiberfil.sys
inetpub
pagefile.sys
",
:err ""}
有关详细信息,请参阅doc。 你可以使用(alter-var-root #'clojure.java.shell/*sh-dir* (constantly "the-cd-path"))
来不断改变它。 感谢isaac告诉我这件事。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.