2017-03-26 4 views
0

ヴァンガード価格データを取得して保存するWgetを作成しようとしています。これまでのところ、2つのステートメントがあり、両方ともコマンドラインから正しく動作するのは、その文字列を貼り付けるときです。文字列をバットファイルとして保存すると、1つは機能し、もう1つは予期しない結果をもたらします。
両方の場所で正しく動作する文字列は、 Wget64 --output-document = C:\ Users \ Default \ downloads \ VVA_Daily_Portfolio-%DATE:〜-4% - %DATE:〜4,2% - %DATE :〜7,2%の.htmlを "https://personal.vanguard.com/us/funds/annuities/variable"Wget64の問題

のみコマンドラインではなくbatファイルとして動作することを文字列は次のとおりです。 Wget64 --output-ドキュメント= C:\ Users \ユーザーデフォルト\ダウンロード\ VVA_Fund64_History - %DATE:〜-4% - %DATE:〜4,2% - %DATE:〜7,2%.html "https://personal.vanguard.com/us/funds/tools/pricehistorysearch?radio=1&results=get&FundType=VVAP&FundIntExt=INT&FundId=0064&fundName=0064&fundValue=0064&radiobutton2=1&beginDate=03%2F01%2F2017&endDate=12%2F31%2F2017&year=#res" 期待どおりの結果が得られるように誰かがスクリプトを書くのを手助けできますか?私はヴァンガードのウェブサイトがコマンドラインとバットファイルのクエリの違いを知ることができ、あるいは2つの実行方法の間に本質的に異なるものがあると考えている。

助けていただければ幸いです。 Dan

答えて

0

cmdコマンドパーサーは、コマンドラインとバッチファイルの動作が異なります。この場合、主な問題は可変展開です。コマンドラインで、変数に値(未定義)が含まれていない場合は、変数の読み取り操作は削除されませんが、バッチファイル内では読み取り操作は削除されます。

つまり、echo(%thisDoesNotExist%のようなものは、コマンドラインには%thisDoesNotExist%と出力されます(変数は存在しないと仮定しています)。バッチファイルには何も出力されません。

これはあなたの問題とどのような関連がありますか?

私たちは、あなたが、パーサーが(ビューの指令点のpurpouseから)誤っoutput場合には正しく、変数を解決しようとどこ

Wget64 
--output-document="C:\Us ... y-%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.html" 
           ^........^ ^.........^ ^.........^ 

"https://pe ... h?radio=1& ... &beginDate=03%2F01%2F2017&endDate=12%2F31%2F2017&year=#res" 
              ^....^     ^....^ 

は、あなたが見ることができる持っているあなたのwget部分に分割した場合でURL。

可変読取り操作の一部でないパーセント記号をエスケープする必要があります(例:倍数)。 ... beginDate=03%%2F01%%2F2017&...

関連する問題