2013-03-06 1 views
0

У меня есть файл CSV с столбцом данных (переменной длины) - вызовите этот файл data.csv. Мне нужен командный файл, который будет читать в data.csv и выводит минимум своих данных в другой файл, скажем, min.csv.Пакетный файл для определения минимума строки данных в другом файле

Любые предложения?

+2

Что означает «выводит минимум своих данных»? [Что вы пробовали] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) ? Пожалуйста измените свой вопрос и спросите его [умный способ] (http://www.catb.org/esr/faqs/smart-questions.html). – rojo

+0

rojo, спасибо за конструктивную критику (говорят с сарказмом). Как я уже сказал, у меня есть файл csv, содержащий столбец числовых данных. Мне нужен командный файл, который будет считываться в этом csv-файле и прокручивать его содержимое (т. Е. Оценивать числовые данные), а затем вычислять минимум. Этот минимум должен быть записан в другой файл. Paul Safier –

+0

@PaulSafier 'compute the minimum' очень расплывчатый и широкий. Вы имеете в виду просто отображать наименьшее значение? Или есть какое-то формульное уравнение, которое нужно выполнить? –

ответ

0

Update:

После ответа на вопрос, я прочитал некоторые из комментариев ниже ваш вопрос и я делаю вывод, что вы хотели сказать: «У меня есть CSV-файл с строки данных» в смену " У меня есть файл csv с столбцом данных ». В случае ряда данных командные файлы очень ограничены и неудобны в использовании. См. this link для обзора и сделайте вывод, что вы, вероятно, должны искать другое решение, чем использовать пакетный файл.


Алгоритм прост, проблема в синтаксисе партии. Следующие работы для меня:

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET minval=2147483647 

FOR /F "tokens=*" %%A IN (data.csv) DO (
    IF !minval! GTR %%A SET minval=%%A 
REM ECHO A is %%A and minval is !minval! 
) 
ECHO !minval! 

незамедленных REMECHO видеть промежуточные результаты.

Пример ввода:

1000000 
1000 
10000 
1 
-15 
100 

Результат, с ECHO активным:

A is 1000000 and minval is 1000000 
A is 1000 and minval is 1000 
A is 10000 and minval is 1000 
A is 1 and minval is 1 
A is -15 and minval is -15 
A is 100 and minval is -15 
-15 

Если вы хотите, чтобы записать результат в файл, просто запустите его как findmin.bat > min.csv (предполагается, что имя партии -file is findmin.bat.

+0

Большое спасибо !!! Оказывается, я также нашел решение, а именно: я закодировал минимальное определение в FORTRAN и просто имел вызов пакетного файла, который является excecutable. -Paul Safier –

+0

Добро пожаловать, приятно слышать, что вы нашли лучшее решение. Пакетное программирование не так весело, как FORTRAN ;-) –