Так много ответов, и никто не обеспечивает решение, которое отвечало бы требованиям ...
Вы не сказали, какие условия должны быть проверены по каждой строке CSV, и что было бы CSV как и то, что журнал будет как - так что я сделал все это вверх ... Вот пример в ПАРТИЯ:
@echo off
set csvfile=input.csv
set logfile=output.log
for /F "tokens=1,2,3 delims=," %%a in (%csvfile%) do call :processline "%%a" "%%b" "%%c"
exit /B 0
:processline
set param=%~3
set check=%param:um=%
rem if they are not equal - substring 'um' exists in it.
if not "$%check%" == "$%param%" (
rem this passes all params to output.
rem I'm not calling echo directly here, because there might be symbols, that will confuse CMD at the end of the %*.
call :output %*>> %logfile%
)
exit /B 0
:output
set colA=%~1
set colB=%~2
set colC=%~3
rem output to log
echo [%DATE% %TIME%] (%colB%) %colA% %colC%.
exit /B 0
Вот входной пример файла, который я тестировал с:
foo,1,dum
bar,3,dim
baz,15,dirum
А вот полученные сообщения журнала:
[2009-10-14 14:57:35.87] (1) foo dum.
[2009-10-14 14:57:35.89] (15) baz dirum.
Я надеюсь, что это ясно показывает, что ПАРТИИ не противно и не трудно использовать. : P
Если у вас есть дополнительные вопросы о BATCH - не стесняйтесь, разместите их все на SO. ;)
perl не маленький (минимальный) достаточно? – geowa4
Wrt. 3: какой файл журнала и какой вид обновления? –
PowerShell должен иметь возможность делать все, что можно сделать в .NET. Независимо от того, является ли это самым простым инструментом для задачи, это еще один вопрос. – TrueWill