0

非常に長いタイトルで申し訳ありませんが、誰かがこれを手伝ってくれるかどうか疑問に思っていました.

私がやろうとしているのは、たとえば 10 個の異なるディレクトリ パスを含むファイルを読み取り、そのディレクトリ内の最新のファイルを取得して、そのファイルから最後の行を読み取ることです。

@echo off
setlocal enableextensions enabledelayedexpansion
set host=%COMPUTERNAME%
echo Host: %host%
for /f "tokens=* delims=" %%I in (C:\temp\servers.txt) do (
    SET /A vidx=!vidx! + 1
    set var!vidx!=%%I
    echo Path-to-File: %%I
    for /f "tokens=* delims=" %%X in ('dir "%%I" /OD /B')  do (
    set newest=%%X
    )
    echo %newest%
    )

出力は次のとおりです。

Host: Windows7
Path-to-File: \\Windows7\C$\direct\log\direct
ECHO is off.
Path-to-File: \\Windows7\C$\temp
ECHO is off.

助けてくれてありがとう。

4

1 に答える 1

0

すみません、あなたの説明には少し混乱しています。以下のバッチ ファイルは、I understand about your requirements に従って作成されました。

@echo off
setlocal EnableDelayedExpansion
echo Host: %COMPUTERNAME%

rem Process the file with the paths:
for /F "delims=" %%I in (C:\temp\servers.txt) do (
   echo Path-to-File: %%I
   rem Get the newest file in this directory
   for /F "delims=" %%X in ('dir "%%I" /OD /B') do (
      set "newest=%%~X"
   )
   echo Newest-File: !newest!
   rem Read the last line from this file
   for /F "usebackq delims=" %%L in ("!newest!") do (
      set "lastLine=%%L"
   )
   echo Last-Line: !lastLine!
)

それが役立つことを願っています...

アントニオ

于 2013-02-07T21:03:05.673 に答える