0

テキストが含まれているテキストファイルがあります。バッチコマンドを使用してテキストファイルに「指定されたファイルが見つかりません」が存在するかどうかを確認したいと思います。

FINDSTR コマンドを使用してローカル マシンで試してみましたが、期待どおりに動作します。しかし、リモート マシンで試してみると、文字列がテキスト ファイルに存在しなくても、常に一致が表示されます。

以下は私のコードです:

--> Getting the latest folder in a directory.

FOR /F "delims=" %%i IN ('dir /b /ad-h /o "\\BuildServer\xyz_build\Daily Build (Main)\"') DO (
    SET a=%%i
)

findstr /c:"The system cannot find the file specified" "F:\Deploy\FreshBuild\%a%.txt" (where %a% is the file name)
    if %errorlevel%==0 (
    ECHO String exists.
)

参考までに、「F:\Deploy\FreshBuild\%a%.txt」パスをエコーし​​てファイル パスを確認しました。

どんな助けでも大歓迎です。

4

1 に答える 1

0

まず、ファイルが存在するかどうかを確認しているようです。あなたはただ使うことができます:

if exist {insert file name here} (
    rem file exists
) else (
    rem file doesn't exist
)

SET a=%%i次に、それを に変更すると、出力はどうなりますかECHO a=%%i。(フォルダは表示されていますか?)

その後、findstr はループの外で発生しています。a の最後の値のみをチェックしますよね?それはあなたの意図のようには見えません。

于 2013-02-05T19:31:31.740 に答える