簡體   English   中英

如何使用Clojure在命令行中更改目錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM