vb.net2008給你個(gè)在TextBox1中顯示批處理時(shí)顯示的內(nèi)容的例子
目前創(chuàng)新互聯(lián)建站已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、天山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
比如:c:\1.bat的內(nèi)容是dir *.*/w 就會(huì)顯示當(dāng)前工作目錄下的內(nèi)容,有可能不是在c盤根目錄下的。
dir c:\*.*/w 就可以不受當(dāng)前目錄影響,顯示c盤根目錄下的內(nèi)容。
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'將顯示的內(nèi)容寫進(jìn)Process.StandardOutput流中
Dim My_p As New Process()
Dim My_P_S As New ProcessStartInfo("c:\1.bat")
My_P_S.UseShellExecute = False
My_P_S.RedirectStandardOutput = True
My_p.StartInfo = My_P_S
My_p.Start()
'讀取數(shù)據(jù)并在TextBox1中顯示
Dim myStreamReader As StreamReader = My_p.StandardOutput
' Read the standard output of the spawned process.
Dim myString As String = myStreamReader.ReadToEnd()
TextBox1.Text = myString
My_p.Close()
End Sub
End Class
你的問題補(bǔ)充已經(jīng)跟原來(lái)的提問差距很大了,實(shí)際上已經(jīng)是兩個(gè)問題了,修改批處理:比如
dir c:\*.*/w|find "B"
echo. pause
dos窗口會(huì)自動(dòng)關(guān)閉
你要這樣子寫
a = Shell(App.Path "\data\A.bat", vbNormalFocus)
忘記說(shuō)了,補(bǔ)充一下
還有說(shuō)明一下,當(dāng)你用(App.Path 來(lái)指定路徑的時(shí)候,在VB6里按F5運(yùn)行是會(huì)找不到此文件的。你要把程序打包成exe后才有效果的,確保 你的exe文件和Data在一個(gè)目錄中。!
因?yàn)槟惆碏5運(yùn)行后你的當(dāng)前應(yīng)用程序路徑是你的VB的安裝路徑,而不是你的 當(dāng)前工程文件所保存的路徑。。。。。
批處理產(chǎn)生于DOS年代,哪時(shí)的電腦是386、486... 運(yùn)行的程序是在 DOS 的提示符下打入命令,命令是一行英文字符,有內(nèi)部命令和外部命令兩種,內(nèi)部命令是系統(tǒng)啟動(dòng)后就已經(jīng)駐留內(nèi)存可以運(yùn)行的命令,外部命令就是我們現(xiàn)在所說(shuō)的可執(zhí)行文件(*.COM 和 *.EXE),命令輸入錯(cuò)了,電腦就不會(huì)幫你干活,后來(lái)微軟搞了一個(gè) WINDOWS31 ,把命令改為圖標(biāo),只要雙擊圖標(biāo)電腦就工作了,現(xiàn)在我們用的WINDOWS就是WINDOWS31的高版本,所以現(xiàn)在的人沒有用命令操作電腦的體會(huì)。而批處理就是用一個(gè)文件把很多個(gè)DOS命令組合在一齊實(shí)現(xiàn)一定的功能。是一種應(yīng)用層的簡(jiǎn)單編程,編程能力有限,還會(huì)常因找不到外部命令而不能正常工作.
VB是WINDOWS下的一種Basic語(yǔ)言,是能生成可執(zhí)行文件的編程語(yǔ)言,是真正的編輯語(yǔ)言,如果你對(duì)WINDOWS API 熟悉,VB幾乎能實(shí)現(xiàn)你所要的全部功能.VB.NET更加把VB提升到與C#為同一層次的地位.
VB和批處理為什么能同時(shí)寫在一起呢?批處理能加入VB寫的可執(zhí)行文件,VB可以用 Shell 或 API 來(lái)調(diào)用批處理文件.
我覺得應(yīng)該有兩種解決方法
1:把patran的安裝路徑添加到系統(tǒng)環(huán)境變量的path屬性下;
2:在你的批處理里面改為如下格式,patran完整路徑(如c:\MSC.software\········patran.exe)+ "-sfp patran.ses",也就是下面這種情況試下“c:\MSC.software\········patran.exe -sfp patran.ses -b -ans yes”
調(diào)用c:\1.bat,可以這樣:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Shell("cmd.exe /c call c:\1.bat", AppWinStyle.NormalFocus)
End Sub
在 Form_Load 寫入
Dim cmd As String = Command()
cmd 就是傳入的參數(shù)了。
就看你怎么利用了。