2014-03-13 163 views
1

當我在cmd中提交以下行時,它通過生成csv文件來返回預期輸出。X命令不能將輸出重定向到文件

C:\>Tasklist /FO CSV > C:\SomeFolder\Task.csv 

但是當我在SAS提交使用X命令同樣的思路,它只是運行併產生日誌沒有輸出文件或錯誤。我能夠運行其他X成功命令

X "Tasklist /FO CSV > C:\SomeFolder\Task.csv"; 

我嘗試使用SYSTASK很好,但即使是無法創建csv文件,我失去的東西嗎?

+1

如果您正在閱讀的 「C:\ somefolder \ task.csv」 文件到SAS之後嘗試的文件名管方法: '文件名X管材 「任務列表/ FO CSV」;' 然後你可以使用infile語句將數據讀入數據集中: 'data tasks;' 'infile x; ...' – mjsqu

+0

我會在下午試試這個,並且讓它知道它是否有效。謝謝 – Tihor

+0

我試過以下,但它似乎並沒有工作,它不斷顯示datatstep正在運行,但似乎不輸出任何東西 FILENAME Tasklist PIPE'TaskList'; DATA Task; INFILE任務列表; RUN; – Tihor

回答

4

感謝Printscreen的強大功能以及我作爲孩子時玩星際爭霸的反射訓練,我設法抓住了錯誤信息。

ERROR: Invalid argument/option: '>'

問題是X並不是一個真正的命令行;它是一個單一的命令界面。您不能以完全相同的方式重定向輸出。

您有兩種選擇。如果你只是做這行的讀這回SAS目的的人,你應該用一個管道來讀它。

filename tasks pipe "tasklist /FO CSV"; 
data mytasks; 
infile tasks lrecl=1500 dlm=',' truncover dsd firstobs=2; 
length image $50; 
input 
Image $ 
PID $ 
Session $ 
SessionNo $ 
MemUse $ 
; 
run; 

否則,你可以寫一個bat文件並執行經x

filename bat "c:\temp\task.bat"; 
data _null_; 
file bat; 
put "Tasklist /FO CSV > c:\temp\Task.csv"; 
run; 
x "c:\temp\task.bat"; 
+0

使用命令/ c選項運行原始命令:X「命令/ c任務列表/ FO CSV> C:\ SomeFolder \ Task.csv」;似乎也工作 - 但實際上它產生了一個空文件。您的解決方案效果很好,謝謝。 – kristof

相關問題