3 回答

TA貢獻1772條經(jīng)驗 獲得超5個贊
要執(zhí)行Jesse描述的操作,需要從Windows批處理文件中編寫:
for /f "delims=" %%a in ('ver') do @set foobar=%%a
但是,如果您習慣使用Unix類型的腳本,我建議在Windows系統(tǒng)上使用Cygwin。

TA貢獻1802條經(jīng)驗 獲得超5個贊
由于Windows批處理命令,因此需要特別小心:
for /f "delims=" %%a in ('command') do @set theValue=%%a
與Unix shell語句的語義不同:
theValue=`command`
考慮命令失敗導致錯誤的情況。
在Unix Shell版本中,仍然會繼續(xù)分配“ theValue”,所有先前的值都將替換為空值。
在Windows批處理版本中,處理錯誤的是“ for”命令,并且永遠不會到達“ do”子句-因此,將保留“ theValue”的任何先前值。
為了在Windows批處理腳本中獲得更多類似Unix的語義,必須確保進行分配:
set theValue=
for /f "delims=" %%a in ('command') do @set theValue=%%a
將Unix腳本轉(zhuǎn)換為Windows批處理時未能清除變量的值可能是導致細微錯誤的原因。

TA貢獻1824條經(jīng)驗 獲得超6個贊
當我在批處理文件中需要數(shù)據(jù)庫查詢結(jié)果時,這是我的處理方法:
sqlplus -S schema/schema@db @query.sql> __query.tmp
set /p result=<__query.tmp
del __query.tmp
密鑰在第2行中:“ set / p”通過“ <”重定向運算符將“ result”的值設(shè)置為“ __query.tmp”中第一行的值(僅)。
- 3 回答
- 0 關(guān)注
- 1255 瀏覽
添加回答
舉報