clojure может сделать это.Вам нужно только изменить динамическую глобальную переменную с именем *sh-dir*
.запустите следующий код в вашем репл:
(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 ""}
см. документ для получения дополнительной информацииВы можете использовать (alter-var-root #'clojure.java.shell/*sh-dir* (constantly "the-cd-path"))
, чтобы постоянно его менять.Спасибо, что Исаак рассказал мне об этом.Надеюсь, это поможет.