-1

Beyond Compare にツールを実装しています。ファイルの内容を読み取り、変数に格納するこのコードがあります

for /f "usebackq tokens=* delims=" %%h in ('type C:\user\userfiles\title.txt') do (
set title=%%h
)

title.txt の内容例

AAA BBB CCCC

今、このコードで%title%の値を渡したい

%varA% %varB% c:\user\output1\%%a c:\user\output2\%%b "c:\user\report.html" %title% /silent

詳述するには:

c:\user\output1\%%a    -> %1
c:\user\output2\%%b    -> %2
"c:\user\report.html"  -> %3
%title%                -> %4

ここで、この files.txt は、スクリプトの引数の一部として上記の引数を呼び出します。

file-report layout:side-by-side options:display-all,line-numbers title:%4 output-to:%3 output-options:html-color %1  %2 

ここでの問題は、%title% のエコーを実行すると、「AAA BBB CCC」と表示されますが、このコード行では、

%varA% %varB% c:\user\output1\%%a c:\user\output2\%%b "c:\user\report.html" %title% /silent

「AAA」である最初のスペースの前の最初の単語のみを読み取ります

すでに二重引用符 ("%title%") で囲みましたが、「指定されたファイルが見つかりません」というメッセージが表示されます。

4

1 に答える 1

0

パラメータを使用してプロシージャを呼び出しているように見えるため (ただし、呼び出しを示していません)、仮定を行う必要があります。

私の推測は次のとおりです。

行内call: ..... "%title%"

プロシージャ内では%~4、代わりに使用し%4ます。

しかし、使用されている可能性のあるユーティリティの構文が何であるかを知らなければ、保証はありません。

于 2014-12-12T23:37:27.033 に答える