0

テキストファイルを読み取るためのバッチスクリプトがあります。ファイル名に特殊文字が含まれていない場合は正常に機能しますが、ファイル名に特殊文字が含まれている場合は失敗します。

元のファイル名:localhost_access_log.2013-03-08

コード:

for /f "skip=%* tokens=*" %%b in (Y:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2013-03-08.txt) do (
    echo "Data Copied"
)

このようなファイルの読み方を教えてください。

4

1 に答える 1

1

コマンドhelp forラインで入力して for コマンドのドキュメントを取得すると (これはかなり読みにくいと思います)、これは半分ほど下に埋もれています。

For file names that contain spaces, you need to quote the filenames with
double quotes.  In order to use double quotes in this manner, you also
need to use the usebackq option, otherwise the double quotes will be
interpreted as defining a literal string to parse.

したがって、コードは次のように変更する必要があります。

for /f "usebackq skip=%* tokens=*" %%b in ("Y:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2013-03-08.txt") do (
    echo "Data Copied"
)
于 2013-03-08T14:33:27.053 に答える