質問: Process.Start(startInfo); process.WaitForExit(); sendslack.batのソース chcp 65001 rem slackへ送信するURL set URL=https://hooks.slack.com/services/XXXXXXX/YYYYYYYY/ZZZZZZZZ rem 投稿するメッセージ (改行は\n) set TEXT=%1%%2% rem 投稿するチャンネルやメンション(#randomとか @user) set TO="#ツールの通知窓" rem 投稿者の名前(この名前のBOTが投稿したように見える) set FROM="Tool" rem 投稿アイコン(slackで使える絵文字記号) set ICON_EMOJI=":computer:" rem 送信 rem echo {"text":%TEXT%,"channel":%TO%,"username":%FROM%,"icon_emoji":%ICON_EMOJI%}| nkf -w | curl -k -X POST --data-urlencode payload@- %URL% echo {"text":%TEXT%,"channel":%TO%,"username":%FROM%,"icon_emoji":%ICON_EMOJI%}| curl -k -X POST --data-urlencode payload@- %URL% pause > nul
回答: 改行コードそのものを渡さず、自分で定義したエスケープシーケンス(たとえば「!n」を改行コードとみなす。「!n」という文字を表す時には「!!n」とする)でプログラムからbatファイルへ渡せばいいのでは? batファイル側では受け取ったパラメータテキスト中に「!n」という文字列があればそれを改行コードとみなして処理する。