Помощь со сценарием DOS (захват определенных данных из файла)

Мне нужно взять только значение md5 из файла и сделать его переменной, которую я могу использовать для сравнения с другим значением md5. Проблема в том, что этот файл выглядит так:

a7393f772e34ca16a5854e80d9ec6704 md5

Как открыть файл и получить только фактический номер в DOS? (Не "md5" И установить его как переменную?

Спасибо!


person Steve    schedule 14.11.2009    source источник


Ответы (1)


В MSDOS это невозможно сделать с помощью пакетного файла. Тем не менее, NT/W2K/XP/и т.д. пакетный файл может сделать это следующим образом:

for /F "tokens=1" %%A in (md5list.txt) do set result=%%A
echo result is %result%
person wallyk    schedule 14.11.2009
comment
Спасибо Валик. Я запускаю это как файл .bat, разве это не использует MS-DOS? Я буду запускать это в среде Win2003. Я поместил вашу команду в файл .bat и запустил ее, и это был вывод: C:\ipod›test.bat C:\ipod›for /F tokens=1 %A в (file.txt) do set result=% A C:\ipod›set result={\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss \fcharset0 C:\ipod›set result={*\generator C:\ipod›set result=} C:\ipod›echo результат } результат } - person Steve; 14.11.2009
comment
Нет, он не будет использовать MSDOS, если вы не вызовете command.com, и даже тогда это не совсем MSDOS. Похоже, что file.txt отформатирован не так, как ожидалось. - person wallyk; 14.11.2009
comment
@Steve: Похоже, ваш файл file.txt на самом деле является файлом формата .rtf. Сохраните его как обычный текст и повторите попытку. - person Greg Hewgill; 14.11.2009
comment
Это было так, ребята! Большое спасибо за помощь! - person Steve; 14.11.2009
comment
У меня есть одна проблема: мой файл никогда не использует одно и то же имя, поэтому я не могу использовать текстовый файл, такой как list.txt. Мы автоматически загружаем два файла: файл .dat и файл .md5. Оба они имеют уникальное имя файла, которое меняется каждый раз (V2, V3 и т. д.). По сути, я запускаю файл .dat через приложение md5, и оно создает правильный md5, который я хочу сравнить с файлом .md5 (после того, как я выберу только число). Но когда я попытался запустить скрипт с предоставленным вами решением, я только что изменил (list.txt) на (*.md5), но это не удалось. Есть ли другой способ получить число, используя файл * .md5 в вашем решении? - person Steve; 17.11.2009
comment
Я только что проверил, и если я укажу полное имя файла .md5, он будет работать нормально, но можно ли использовать подстановочный знак с этой командой? Это будет единственный файл md5 в каталоге. - person Steve; 17.11.2009
comment
Если вы знаете, что у вас есть только один файл .md5 в подкаталоге, почему бы просто не переименовать его сначала: REN *.md5 list.txt Это будет работать нормально, если там есть только один файл .md5. - person Sam Holloway; 18.11.2009