【curl】【Windows】統合Windows認証しながら、POSTパラメータとファイルをアップロードする

curl.exe --ntlm --user userId:password --connect-timeout 30 --max-time 10800 -XPOST -F "uploadFile=@C:tempdummyFile.txt" -F "ParameterPost=hoge" "https://localhost/app?ParameterGet=hogehoge"
  • 統合Windows認証のためのユーザーIDとPWを指定
    • –ntlm –user userId:password
  • 接続タイムアウトを30秒
    • –connect-timeout 30
  • 最大処理時間を3時間(60秒*60分*3時間)
    • –max-time 10800
  • アップロードファイルを指定
    • -XPOST -F “uploadFile=@C:tempdummyFile.txt”
  • POSTパラメータを指定
    • -F “ParameterPost=hoge”
  • URLを指定(GET含む)
    • “https://localhost/app?ParameterGet=hogehoge”

 

【curl】【Windows bat】内部コマンドまたは外部コマンド~として認識されていません。エラーになる

curl https://juraku-software.net/?hoge=aaa&hoge2=bbb

として実行すると、

‘hoge2’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

となる。
(文字化け防止のため、コンソールの文字コードをchcp 65001で変更してから実行すると、
‘hoge2’ is not recognized as an internal or external command,
operable program or batch file.
になる)

この場合は、

curl "https://juraku-software.net/?hoge=aaa&hoge2=bbb"

のように”でURLを囲んであげれば、OK!

&は別のコマンドを指定するときに利用するため、hoge2というプログラムが存在しないということになる。

単純なミスだった・・・

【C#】【VB.NET】専用Windowsソフトウェア開発サービス

オリジナルのWindowsアプリケーション作成サービスを提供しています。
自社の業務にあった専用のアプリを作成して、業務を効率化しませんか?
まずはお気軽にご相談ください。お問い合わせ

仕事に役立つWindowsアプリを開発します 市販ソフトで不満な方に。あなただけの専用アプリを作ります!

【Windows Bat】バッチファイル(*.bat)テンプレート

動作可能なバッチのサンプルが中々ないため作成。

このテンプレートをもとに目的のコマンド呼び出しを追加すれば、作業が捗る・・・かも。

@echo off
setlocal
rem **************************************************
rem Windowsバッチファイルテンプレート v1.01 2017/08/23
rem https://juraku-software.net/
rem ★印のブロックを書き換えて使ってください
rem 
rem このテンプレートの仕様>>
rem バッチファイルの保存フォルダの下にLogフォルダを作成し、そこに日付のログファイルを作成する。
rem エラー処理のテンプレも兼ねて故意に誤ったパラメータを指定してPingコマンドを実行している。
rem **************************************************

rem ■ログファイル名取得(現在時刻)
set TIME2=%time: =0%
set NOW_DATE=%date:~0,4%%date:~5,2%%date:~8,2%_%TIME2:~0,2%%TIME2:~3,2%%TIME2:~6,2%
set LOG_NAME=Log\%NOW_DATE%.log

rem ■カレントディレクトリ変更
cd /d %~dp0

rem ■ログ作成
if not exist Log\ (
 mkdir Log
)
echo バッチ起動 %date% %time% > %LOG_NAME%

rem ■目的のコマンド★
echo コマンド開始 >> %LOG_NAME%
rem エラーを起こすために適当なパラメータを指定
ping -aaa >> %LOG_NAME% 2>&1

rem ■エラー判定
if %errorlevel% == 0 (
 rem エラー無し
 echo コマンド実行成功 戻り値:%errorlevel% >> %LOG_NAME%
 endlocal
 exit /b 0
) else (
 rem エラー有り
 echo コマンド実行失敗 戻り値:%errorlevel% >> %LOG_NAME%
 endlocal
 exit /b %errorlevel%
)

rem ■終了

変更履歴
2017/08/23 setlocal~endlocalの記載追加