|
2016/05/15(Sun) 22:36:19 編集(投稿者)
■No79780 (魔界の仮面弁士 さん) に返信 > ■No79779 (OK("Farm") さん) に返信 >>純粋にbat内での変数代入の文法が分からず、 > > %1 で受け取れます。 > http://capm-network.com/?tag=Windowsバッチファイル引数 > > それを用意しておけば、 > psi.FileName = "C:\foolder\file.bat" > psi.Arguments = TextBox1.Text > のようにして渡せるかと。 > > >>Dim strText As String = ComboBox1.Text >>psi.Arguments = "/c netsh Interface ipv4 Set address name=strText Static 192.168.0.0 255.255.255.0 192.168.0.0 1 & netsh interface ipv4 set dnsservers name=""イーサネット"" static 8.8.8.8 primary & netsh interface ipv4 add dnsservers name=strText 8.8.4.4 index=2" >>psi.Arguments = "/c netsh Interface ipv4 Set address name=""ローカル エリア接続"" Static 192.168.0.0 255.255.255.0 192.168.0.0 1 & netsh interface ipv4 set dnsservers name=""イーサネット"" static 8.8.8.8 primary & netsh interface ipv4 add dnsservers name=""ローカル エリア接続"" 8.8.4.4 index=2" > > > > VB2015 であれば > psi.Arguments = $"/c netsh Interface ipv4 Set address name=""{strText}"" Static 192.168.0.0 255.255.255.0 192.168.0.0 1 & netsh interface ipv4 set dnsservers name=""イーサネット"" static 8.8.8.8 primary & netsh interface ipv4 add dnsservers name=strText 8.8.4.4 index=2" > のように書けます。 > > VB2015 未満の場合は、従来通りに文字列連結演算子を用いて > psi.Arguments = "/c netsh Interface ipv4 Set address name=""" & strText & """ Static 192.168.0.0 255.255.255.0 192.168.0.0 1 & netsh interface ipv4 set dnsservers name=""イーサネット"" static 8.8.8.8 primary & netsh interface ipv4 add dnsservers name=strText 8.8.4.4 index=2" > のように書くことになります。 > > あるいは String.Format を用いて > psi.Arguments = String.Format("/c netsh Interface ipv4 Set address name=""{0}"" Static 192.168.0.0 255.255.255.0 192.168.0.0 1 & netsh interface ipv4 set dnsservers name=""イーサネット"" static 8.8.8.8 primary & netsh interface ipv4 add dnsservers name=strText 8.8.4.4 index=2", strText) > のようにすることもできますね。
魔界の仮面弁士 様、迅速かつ的確なご回答を本当にありがとうございました。
喉から手が出るほど欲しかった情報が期待以上の形で返ってきたことに大変、喜びを感じております。
こちらが開発環境をお伝えしていなかったため、お手間を取らせてしまったようで申し訳なく思います。 VB2015での開発ですから $"〜""{}""" こちらの記述で見事に走りました。感服いたします。
また、VB2015 未満の場合ですと """ & strText & """ で通るというようなご指摘も非常に有益な情報でした。 ExcelVBAやAccessVBAをかじってきた私からすれば、VBの文法はほぼ別物であると捉えていましたが、 2015未満ですと、文字列連結演算子を用いることができるのだと初心者ながら感動いたしました。
あとは最初のご回答にあった(案2)を理解し、アクティブなアダプター名の自動取得を可能にすれば、 実用化が現実になりそうです。
今後、自己解決が難しい疑問にぶつかった際は、こちらを利用させていただきます。 魔界の仮面弁士 様、またご縁がありましたらよろしくお願いいたします。
|