• ベストアンサー

ダブルクォーテーションのファイル出力について

文字列をファイル出力する際にダブルクォーテーション(")を表示させるにはどのような方法があるのでしょうか。 私はエクセルのマクロを利用し、Windowsパラメータ設定の簡略化を図ろうかと考えています。 マクロの概要としてはパラメータをエクセルの所定の表に記載し、最後にマクロを実行させることで、 任意のフォルダにパラメータ設定BATファイルを吐き出すといったものです。 その中でIPの設定のBATファイルでつまってしまったので、ご教授下さい。 まず、WindowsでコマンドラインのIP設定にはnetshコマンドを利用します。 たとえば、NIC名:Ethernet、IP:192.168.1.1、サブネット:255.255.255.0、デフォルトゲートウェイ:192.168.1.254 を設定する場合、下記のコマンドを利用します。 netsh interface ip set address Ethernet static 192.168.1.1 255.255.255.0 192.168.1.254 1 マクロではNIC名、IP、サブネット、デフォルトゲートウェイに変数を利用しており、 それぞれNetworkName、IP、Subnet、DefaultGatewayをStringで宣言しております。 VBで上記のコマンドをファイル出力させるときは以下のコードを利用しています。 "netsh interface ip set address " & NetworkName & " static " & IP & " " & Subnet & " " & DefaultGateway & " 1" しかし、NIC名がデフォルトである「ローカル エリア接続」である場合は「ローカル」と「エリア接続」、 の間に半角スペースが入っているため、NetworkNameをダブルクォーテーションで囲う必要があります。 上記のコードでNetworkNameをダブルクォーテーションで囲うにはどのようにすればよいでしょうか。 ちなみにシングルクォーテーションではnetshコマンドでエラーとなります。 宜しくお願いします。

noname#203123
noname#203123

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

"" と打つと、最初の " は機能の打ち消しの意味になるので、" 1個の扱いになります。 「"あ"」と表示する場合は、 MsgBox """あ"""

noname#203123
質問者

お礼

ありがとうございます。 できました。

その他の回答 (1)

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

""で"と理解してくれます。

noname#203123
質問者

お礼

ありがとうございます。 できました。

関連するQ&A

  • コマンドでTCP/IPの設定を行う際の質問

    コマンドでTCP/IPの設定を行うコマンドを以下の通り作成しました。 @echo off set Ntname="ローカル エリア接続" set Ipadd=XXX.XXX.XXX.XXX set Subnet=XXX.XXX.XXX.XXX set Dfgy=XXX.XXX.XXX.XXX set DnsSv1=XXX.XXX.XXX.XXX set DnsSv2=XXX.XXX.XXX.XXX set DnsSv3=XXX.XXX.XXX.XXX netsh interface ip set add name=%Ntname% source=static addr=%Ipadd% mask=%Subnet% gateway=%Dfgy% gwmeric=1 netsh interface ip set dns name=%Ntname% source=static addr=%DnsSv1% primary validate=no netsh interface ip add dns name=%Ntname% addr=%DnsSv2% index=2 validate=no netsh interface ip add dns name=%Ntname% addr=%DnsSv3% index=3 validate=no pause これを実行するとIPアドレス、デフォルトゲートウェイ、サブネットマスク、DNSサーバーの設定は問題なくできています。 これに「この接続のアドレスをDNSに登録する」を無効にする設定(チェックを外す)にしたいのですが、どのようなコマンドを追加すればよいのでしょうか。 ご教授ください。

  • ダブルコーテーションを全角に置換するには

    InputBoxで入力した"を、Replace関数で”にしたいのですが、 Replace(str, """", "”")をすると、コンパイルエラーになります。 Sub macro() Dim str As String str = InputBox("文字を入れてください") Debug.Print Replace(str, """", "") End Sub というマクロを作りました。 画像のように、半角のダブルコーテーション「"」を入れたら、 Replace関数で全角のダブルコーテーション「”」に変えるにはどうすればいいでしょうか? 「最初からInputBoxに全角入れればいいやん!」 は、なしにしてください。 ファイル名を作っていて、ダブルコーテーションは全角でないとつけられないのです。

  • CSV出力のダブルクォーテーションについて

    ウェブアプリからCSV出力を行いたいのですが 出力行の両端に「"」(ダブルクォーテーション)が一緒に出力されます。 このダブルクォーテーションを出力したくありません。どうすればいいでしょうか?ご教授お願いします。 ちなみに下記は自分で作った例です。また使用するクラスはCSV::Writer以外でもかまいません。 class hoge  def exprt   cntnt_type = "text/csv"   ##ファイル名称の設定   file_name = "hoge.csv"   ##CSVオブジェクトを生成し、データをセットしていく   CSV::Writer.generate(output = "") do |csv|     csv << ["hoge", "fuga"]   end   ##CSVファイルの出力   send_data(output, :type => cntnt_type, :filename => file_name) end

  • EXCEL→CSV保存時のダブルクォーテーションについて

    下記のようにEXCELマクロにてEXCELファイルをCSVファイルに保存しようとしています。 NewBook.SaveAs Filename:="test.csv", FileFormat:=xlCSV, CreateBackup:=False このとき、セル値にダブルクォーテーションが含まれていると、出力CSVファイルの値がダブルクォーテーションで囲まれてしまいます。 ●ダブルクォーテーションが含まれていない場合 セル値→A列:ABC     B列:DEF CSVファイル→ABC,DEF ●ダブルクォーテーションが含まれている場合 セル値→A列:A"C     B列:DEF CSVファイル→"A"C",DEF 後者の場合もダブルクォーテーションで囲まれないようにするにはどうすればよいでしょうか。

  • バッチファイルの長い行を2行に分けたい

    IP address を変更するため、WindowsXp で以下のバッチファイルを用いていました。 netsh interface ip set address name="ローカルエリア 接続" source=static addr=192.168.1.1XX mask=255.255.255.0 netsh interface ip set address name="ローカルエリア 接続" gateway=192.168.1.1 gwmetric=1 netsh interface ip set dns name="ローカルエリア 接続" source=static addr=192.168.1.1 しかし、Windows Vista にすると、右クリックして「管理者として実行」しないといけなくなり、さらに、2行目を実行すると、1行目で設定した IP address が 0.0.0.0 に書き換わってしまうようになりました。そこで、次のように1行目と2行目をあわせて1行にするときちんと実行できるようになりました。 netsh interface ip set address name="ローカルエリア 接続" source=static addr=192.168.1.1XX mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1 netsh interface ip set dns name="ローカルエリア 接続" source=static addr=192.168.1.1 しかし、1行が長すぎて見にくいです。MS DOS コマンドを2行に分ける書き方を教えてください。

  • netshコマンドを使用して、リストからIPを設定する方法

    複数(100台以上)のパソコンに静的IPアドレスの設定を netshコマンドで行いたいのですが、PC名とIPアドレス が入力されているテキストファイルから読み込んで設定する方法を教えてください。 IPLISTの保存場所はC:\IPLISTです。 下記のコマンドをどのように変更したらいいんでしょうか? c:\>netsh interface ip set address "ローカル エリア接続" static 192.168.1.100 255.255.255.0 192.168.1.1 1 c:\>netsh interface ip set dns "ローカル エリア接続" static 192.168.1.1 c:\>netsh interface ip set wins "ローカル エリア接続" static 192.168.1.1

  • バッチファイルの長い行を2行に分けたい

    職場にいくつかのネットワークがあり、僕のパソコンをあるネットワークから別のにつなぎかえる時はケーブルを差し替え、コントロールパネルで IP address を書き換えていました。しかし、書き換えるのが面倒で Windows Xp の時は以下のバッチファイルを使っていました。 netsh interface ip set address name="ローカルエリア 接続" source=static addr=192.168.1.XXX mask=255.255.255.0 netsh interface ip set address name="ローカルエリア 接続" gateway=192.168.1.1 gwmetric=1 netsh interface ip set dns name="ローカルエリア 接続" source=static addr=192.168.1.1 しかし、Windows Vista に同じバッチファイルを使おうとした所、今までのようには動きませんでした。 一行目で設定したはずの IP address と サブネットマスクが 0.0.0.0 になってしまうのです。二行目のデフォルトゲートウェイ、三行目の DNS サーバーはきちんと設定されます。 一行目で設定したのが二行目で白紙に戻っているようなので、一行目と二行目を以下のようにまとめ、また、Vista なので実行するときに右クリックして「管理者として実行」をクリックするときちんと実行するようになりました。 netsh interface ip set address name="ローカルエリア 接続" source=static addr=192.168.1.XXX mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1 netsh interface ip set dns name="ローカルエリア 接続" source=static addr=192.168.1.1 しかし、1行が長すぎるとみずらいです。二行に分けるには1行目の最後に何か記号をおくのでしたっけ? 二行への分け方ありましたら教えてください。

  • DOSコマンドのダブルクォーテーションの扱い

    DOSコマンドでダブルクォーテーションを検索し、 リダイレクションをすることが出来なくて困っています。 例えば findstr "\"!" a.txt は出来ますが findstr "\"!" a.txt >b.txt とするとリダイレクションが出来ません。 grepも同じようです。 またunixコマンドではシングルクオートは、「囲まれた中身をそのままの文字として利用」し、ダブルクオートは、「囲まれた中身に$HOME など $ で始まる文字列があれば、 それを環境変数、シェル変数といった、値に置き換えてから、利用する」という明確な違いがありますが、DOSコマンドでは明確な違いはあるのでしょうか? unixのshellをDOSコマンドに移植しています。 DOSコマンドの参考Webもあまり見つからなくて困っています。 もし参考になりそうなWeb等ありましたら教えてください。

  • netshコマンドについて

    下記のnetshコマンドを実行すると「OK」と返ってくるのですが、設定が変更されていません。 ・netsh interface ip set address "ローカル エリア接続" dhcp ・netsh interface ip set address name = "ローカル エリア接続" source = static addr = 192.168.0.1 mask = 255.255.255.0 別PCではうまくいっていましたのでコマンドに間違いはないと思うのですが・・・ フリーソフトの「ヴァルヘルIPコンフィグ」を使うと変更されました。 何か環境が悪いのでしょうか?

  • DNSのセカンダリのアドレスを、コマンドで変更したいです。

    WinXPでドメインネットワークに参加しています。 コマンドで会社のDNSサーバのアドレスを登録したいと思い、 下記のコマンドを実行したところ、セカンダリにエラーが出てしまいました。 プライマリにはちゃんと入るのに、悩んでます。 netsh interface ip delete dns "ローカル エリア接続" all netsh interface ip set dns "ローカル エリア接続" static 10.*.*.*1 netsh interface ip add dns "ローカル エリア接続" static 10.*.*.*2 どうすればコマンドでセカンダリを変えられますか? またリモートでやる方法も教えて下さい。