
xxx/1.jpg
、、など、すべて似たような名前を持つ多数のファイルを にダウンロードしたいです。そのため、次のようにxxx/2.jpg
記述します。xxx/3.jpg
C:/Brawa/
CURL https://example/xxx/[1-3].jpg -o C:/Brawa/#1.jpg
ここで、ソース ファイルの名前をターゲット ファイルの名前と対応させます: C:/Brawa/xxx/1.jpg
; C:/Brawa/xxx/2.jpg
; C:/Brawa/xxx/3.jpg
、など。
私はコマンドラインを使用します:
CURL https://example/xxx/[1-3].jpg -o --remote-name C:/Brawa/*.jpg
何かがうまく動作しませんが、何を間違えたのでしょうか?
答え1
これはうまくいくと思います:
CURL https://example/xxx/[1-3].jpg -o --remote-name C:/Brawa/#1.jpg
答え2
オプション値は隣接している必要があります。すべてのUnixまたはUnixベースのプログラム、およびほとんどのCベースのプログラムでは、ここでのように値を持つオプションを指定する場合-o C:/some/path
、オプションの「フラグ」とその値を一緒に保持する必要があり、間に何か他のものを挿入することはできません。ほとんどの場合、示されているように連続した引数を使用するか、シングル連結された引数は、-oC:/some/path
(短縮形の場合) または--output=c:/some/path
(長い形式の場合は等号を追加、つまり 2 つのハイフン) のように使用されます。これは、通常は/flag:value
すべてまとめて実行される Windows (CMD) ではより顕著であり、間に何かを挿入しようとすることは推奨されません。
harrymcさんの回答にコメントしたように、--remote-name -o c:/some/path
解析する正しくは機能しますが、機能しません。これは、これらの命令が矛盾しており、最初の命令にのみ従うためです。-o c:/some/path --remote-name
も解析しますが、最初の命令にのみ従います (これがファイルの場合、すべての URL が同じファイルに書き込まれ、最後の URL のみが残り、ディレクトリの場合、書き込みがまったく失敗します)。
それ以外アナクスナマンの回答あなたはできるディレクトリを変更する目的の場所に、のみ --remote-name
(または-O
大文字、どちらでもいいえ値)、その後ディレクトリを元に戻します。CMDはほとんどのUnixシェルpushd
と同様にサポートしており、popd
pushd c:\brawa\xxx & curl https://example/xxx/[1-3].jpg -O & popd
答え3
最新バージョン (バージョン 7.73.0 以降) を使用している場合は、出力ディレクトリを指定するためのcurl
新しいオプションを追加できるはずです。例:--output-dir
curl https://example/xxx/[1-3].jpg -O --output-dir "C:/Brawa/xxx"
(大文字の oh) は上記の例-O
と同じであることに注意してください。--remote-name
Windows用の最新の公式curl
バイナリが利用可能ここ最新バージョンのオプションドキュメントcurl
が利用可能ここ。
フォルダーを動的に作成するには--create-dirs
、curl
(curlのマニュアルページのセクションによると--output-dir
--output-dir
ただし、これは上記の例のオプションに基づいているようですので、この値を変更するには追加のスクリプトが必要になる可能性があります(harrymc の回答この質問への回答は Windows 7 で正常に動作しています。