PDA

Показать полную графическую версию : [решено] Батник на отправку файла с изменяемым именем


badcat177
20-04-2017, 11:16
Подскажите пожалуйста, как реализовать через blat отправку файла, у которого каждый день меняется имя (имя текущая дата).

Iska
20-04-2017, 11:24
как »
Для начала изложить а) месторасположение файла и б) алгоритм, по которому строится его имя.

badcat177
20-04-2017, 11:29
а) файл располагается на локальном компьютере в C:\Program Files (x86)\program\logs\csv\daily
б) log-2017-04-20.csv и соответственно завтра будет имя файла log-2017-04-21.csv

Iska
20-04-2017, 12:01
badcat177, могут ли быть там другие .csv-файлы? А впрочем…

Попробуйте так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=%ProgramFiles(x86)%\program\logs\csv\daily

pushd "%sSourceFolder%" && (
for /f "usebackq delims=" %%i in (
`2^>nul dir /a:-d /o:-n /b "log-????-??-??.csv" ^| findstr.exe /i /r /c:"log-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\.csv"`
) do if not defined sSourceFile set sSourceFile=%%~i
popd
) || (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)

if defined sSourceFile echo [%sSourceFile%]

endlocal
exit /b 0

badcat177
20-04-2017, 12:02
Iska, Других файлов там не будет, только с таким форматом имени, и ещё такой вопрос, как это совместить с blat? чтобы этот файл отправлялся на почту, сам блат я настрою

Iska
20-04-2017, 12:22
как это совместить с blat? »
Я же не знаю, что там у Вас ещё в коде. Подставляйте вместо выделенного:
if defined sSourceFile echo [%sSourceFile%]
В переменной окружения sSourceFile будет имя файла.

badcat177
20-04-2017, 14:27
Iska,
Спасибо большое, Ваш код помог на все 1000% )




© OSzone.net 2001-2012