2017-03-20 11 views
0

私のバッチスクリプトのfor-loopは "allepdfsnamen.txt"からpdf-file-pathsを読み込んでいますが、バッチファイルforループforサブルーチン:スペースを含むパラメータを転送しない

enter image description here

  • %% Xはスペース などを含むことができ、パラメータ(PDFファイル・パス)です:正しくサブルーチンに(スペース文字を含むされている)のパス"C:\ユーザー\ gruberw \ Documents_OT_Tickets \ 20170320_I \ Testpdfs \ 31 \ 0000000_134388_266737109_001.PDFチャージスキャン"
  • % 1:本体(サブルーチン)は最初のスペース文字のoccuranceまで、ファイルパスを受信して​​いる enter image description here


私は、二重引用符の下に「allepdfsnamen.txt」のforループに提供されているパスを入れて試してみました:

enter image description here

私は、与えられたパラメータをbody(%% X)の引用符で囲みようとしました。

誰も私に正しい方法(スペース文字で完全なファイルパス)を教えて、パラメータをサブルーチン(:body)に渡すことはできますか?

答えて

2

簡単にコピーして実行できるようにカットアンドペーストする方がよい。

for /f "delims=" %%x 

は、スペース区切り文字を使用してデフォルトのトークンをオフにします。

call :body "%%x" 

サブルーチン

echo %~1 

に渡される文字列を引用最初のパラメータから引用符を取り除き

+0

using'delimsを= 'forループおよび'エコー%〜1 'でサブルーチンは最初の引用符を切り取り、すべてのスペース文字を含むパラメータが引き渡されるようにします。ありがとうございます。 – walt

関連する問題