→ firejox:用for or set應該都可以給吧... 09/15 19:11
→ tropical72:在c裡調用set,那最後batch 怎知要去接哪個?寫死嗎? 09/15 19:28
→ firejox:不能寫在batch嗎? 09/15 19:31
→ tropical72:耶..這就是我納悶的地方.怎用c寫一個application可讓 09/15 19:35
→ tropical72:batch 接結果? 09/15 19:35
→ firejox:喔 我懂了 用popen呼叫sum.exe 09/15 19:37
→ firejox:忽略樓上... 09/15 19:38
→ tropical72:拿到keyword了!!先研究一下,晚些回報,感謝!! 09/15 19:38
→ tropical72:嗯..popen 似乎沒辦法把結果傳回 batch 裡去 XD 09/15 19:58
推 ericinttu:你要不要用C把要做的batch事情, 轉存成.bat檔, 再去執行 09/15 20:20
→ ericinttu:呢? (不知道這樣做,對你會不會比較簡單?) 09/15 20:20
嗯,動作洽好有點相反,一般是在 C language 呼叫 batch / command line,
但這隻 c 主要是寫給 batch file 使用,
基本上可以用 batch 做的當然用 batch 較方便,
不過 batch 設計整個死在沒有 array / floating,
再加上 batch 調用 recursive 的話整個慢到一個不行 (recur 可用 stack 也較小)
所以才想用 c 先包一些簡單的 library (math 應該是準備全包了) 出來,
給 batch 調用,補足 batch 先天不足。
當然如果搞下去很複雜的話,不排斥轉搞 vbs
推 ericinttu:所以標題寫錯方向? 09/15 20:38
已修正,再補一下,用 putenv 失敗。
※ 編輯: tropical72 來自: 180.177.78.41 (09/15 20:39)
→ firejox:for /f %%G in ('sum.exe') do ? 09/15 20:39
→ tropical72:上面那行可以多次用sum.exe執行沒錯,但該怎取出結果? 09/15 20:50
→ tropical72:c 裡用 printf 後,batch 就沒辦法用 SET/call 取結果. 09/15 20:51
→ firejox:?? %%G 就是結果呀 09/15 20:55
→ firejox:比方說for /f %%G in ('sum.exe 1 10') do echo %%G 09/15 20:56
→ firejox:G就是吃sum 命令的output呀 09/15 20:57
→ priv:就可以少一步轉到log.txt再讀出來的動作 09/15 21:02
→ tropical72:耶..是有點怪怪的,請問sum.exe那裡,55會怎處理? 09/15 21:34
→ tropical72:printf("%d\n", ret); 像這樣嗎? 09/15 21:34
→ firejox:恩恩 是的 09/15 21:47
我似乎幹了傻事,或該拜拜了..
.c 用 printf 的確就行了,而 batch 從頭到尾的確都用 for 寫就行
@echo off
SETLOCAL EnableDelayedExpansion
FOR /F "tokens=* delims=" %%A in ('sum_gcc.exe 1 10') DO (
SET myvar=%%A
echo !myvar!
)
ENDLOCAL
@echo off
SETLOCAL EnableDelayedExpansion
FOR /F "tokens=* delims=" %%A in ('sum_vc.exe 1 10') DO (
SET myvar=%%A
echo !myvar!
)
ENDLOCAL
pause > nul
for 那段 firejox 的也沒錯 (EnableDelayedExpansion 必加就不說了)
一開始神奇的事情是,直接在 command line 輸入 sum_vc.exe 1 10
不會跑出結果 (抓這個抓了一個下午,最後才測到這個 XD)
後來用 gcc 試試卻可以跑。
重開機、重編譯後,現在一切正常了,現在還在想 vc 那段 bug 可能沒重現性了。
最後謝謝 firejox, priv , ericinttu 協助處理,感激不盡。
※ 編輯: tropical72 來自: 180.177.78.41 (09/15 22:34)
※ 編輯: tropical72 來自: 180.177.78.41 (09/15 22:41)
→ priv:VC可能是環境的問題吧 09/16 13:33
→ priv:要開win32 console project.. 09/16 13:33
→ tropical72:謝謝priv提醒,由於問題沒回復性了,也難追回 XD 09/16 18:33