1

cli argsによってパレードされた後、optsのデフォルトパラメータにアクセスするにはどうすればよいのでしょうか。プログラムを呼び出しています

./rexfer --ifn1 --ifm1 --ofn1 --ofn3

(defn parse-args
  "Using the newer cli library, parses command line args."
  [args]
  (cli args
       ["-r" "--ifn1" ".csv input file"  :default "standfiletrans_acre.csv"]
       ["-p" "--ifn2" ".csv input file"  :default "pp_report_to_change.csv"]
       ["-m" "--ifm1" ".csv input file"  :default "columns.csv"]
       ["-v" "--ofn1" ".csv output file" :default "re_values.csv"]
       ["-x" "--ofn2" ".csv output file" :default "re_pp.csv"]
       ["-u" "--ofn3" ".csv output file" :default "re_mixed_use_ratio.csv"]
       ["-t" "--rpt"  ".csv pipe delimited output file" :default "xfer.csv"]))

(defn -main 
  [& args]
  (let [[opts args banner] (parse-args args)

これは、解析された後のoptsの出力です。

{:rpt xfer.csv、:ofn3 re_mixed_use_ratio.csv、:ofn2 re_pp.csv、:ofn1 --ofn3、:ifm1 --ifn1、:ifn2 pp_report_to_change.csv、:ifn1 Standfiletrans_acre.csv}

(:ifn1 opts)は、standfiletrans_acre.csvではなく--ifn1を返します。

4

1 に答える 1

2

キーワードは、:default引数がまったく指定されていない場合に使用されます。引数を追加する場合、値を指定せずに次の引数を指定すると、次の引数が最初の引数に指定された値として読み取られます。

arthur@a:~/args/src/args$ lein run --ifn1 --FOO --ifn2 --ifm1  
All namespaces already :aot compiled.
options are:                                                
{:rpt "xfer.csv"
 :ofn3 "re_mixed_use_ratio.csv",
 :ofn2 "re_pp.csv", 
 :ofn1 "re_values.csv",
 :ifm1 "columns.csv", 
 :ifn2 "--ifm1",   
 :ifn1 "--FOO"} 
arguments are: 
[] 
the banner text is: 
 Usage:                             

 Switches    Default                  Desc           
 --------    -------                  ----   
 -r, --ifn1  standfiletrans_acre.csv  .csv input file 
 -p, --ifn2  pp_report_to_change.csv  .csv input file 
 -m, --ifm1  columns.csv              .csv input file   
 -v, --ofn1  re_values.csv            .csv output file 
 -x, --ofn2  re_pp.csv                .csv output file 
 -u, --ofn3  re_mixed_use_ratio.csv   .csv output file                      
 -t, --rpt   xfer.csv                 .csv pipe delimited output file   

この例では、:default 値は、リストにない値に対してのみ使用されます。

于 2012-10-31T23:46:39.003 に答える