В cmd.exe переменная FOR / F% IN ( имя файла ) DO команда должна дать вам то, что вы хотите. Это читает содержимое имя файла (и они могут быть более одного имени файла) по одной строке за раз, помещая строку в переменную% (более или менее; выполните HELP FOR в командной строке). Если никто не предоставит командный скрипт, я попытаюсь.
РЕДАКТИРОВАТЬ: моя попытка сценария cmd.exe, который выполняет запрошенный:
@echo off
rem first arg is the file containing filenames
rem second arg is the target directory
FOR /F %%f IN (%1) DO IF EXIST %2\%%f ECHO %%f exists in %2
Обратите внимание, скрипт выше должен быть скриптом; По какой-то странной причине цикл FOR в файле .cmd или .bat должен иметь двойные знаки процента перед своей переменной.
Теперь для скрипта, который работает с bash | ash | dash | sh | ksh:
filename="${1:-please specify filename containing filenames}"
directory="${2:-please specify directory to check}
for fn in `cat "$filename"`
do
[ -f "$directory"/"$fn" ] && echo "$fn" exists in "$directory"
done