Hirdetés

Új hozzászólás Aktív témák

  • cigam
    titán

    Szia!

    prompt>winscp | findstr "^[-]"
    -rw-rw-rw- 0 user group 1433338128 Oct 6 19:40 151006 fßjl1
    -rw-rw-rw- 0 user group 206993412 Sep 22 17:55 fßjl2
    -rw-rw-rw- 0 user group 195131396 Oct 3 13:18 fßjl3

    leveszi a fejlécet, mert a findstr olyan sorokat továbbít a consolra, ahol a sor elején (amit a "^" jelöl) - character ("[-]" jelöli) van.

    prompt>FOR /F "tokens=5,6,7,8,* delims= " %A IN (' winscp | findstr "^[-]" ') DO @echo %B %C %D %A %E
    Oct 6 19:40 1433338128 151006 fßjl1
    Sep 22 17:55 206993412 fßjl2
    Oct 3 13:18 195131396 fßjl3

    Batcben (%A helyett dupla %-kal, tehát %%A és így tovább %%E-ig):

    FOR /F "tokens=5,6,7,8,* delims= " %AA IN (' winscp | findstr "^[-]" ') DO @echo %BB %CC %DD %AA %EE

    A delims=<space> szóközzel elválasztott szavakra tördeli szét a tokens= vel meghatározott indexekűeket. A %A-ba a fileméret kerül a %B a hónap neve majd a végén a %E-be a 9. szótól a végtelenig (* mondja ezt). Azután az @echo megfelelően összekeveri a stringeket.

    Azt nem nagyon hiszem hogy a winscp csak ilyen bénán írja ki a dátumokat, kell lennie megfelelő kapcsolónak, hogy a kívánt formátum legyen. Lehetséges, hogy a dir parancs is pont ilyen bénán írja ki a dátumokat? Mert akkor a "set dircmd=" -t kell állítani.

    Üdv.

    Köszi a tippeket, végül ez lett belőle:
    @echo off
    setlocal EnableDelayedExpansion
    set fajlnev=%date%txt
    d:
    cd D:\PortableApps\ftp-list
    del fajlnev
    winscp.com /script=ftpserverem>>%fajlnev%
    rem 5=fájlméret byte-okban
    rem 6=hónap rövid neve
    rem 7=nap sorszáma
    rem 8=idő
    rem 9-=fajlnev
    for /f "skip=11 tokens=5,6,7,8,* delims= " %%A in (%fajlnev%) do call :sorfeldolgozas "%%E" "%%A" "%%B" "%%C" "%%D"
    goto :vege

    :sorfeldolgozas
    set nev=%~1
    set /a meret=%~2/1024/1024
    if "%~3" == "Jan" set honap=01
    if "%~3" == "Feb" set honap=02
    if "%~3" == "Mar" set honap=03
    if "%~3" == "Apr" set honap=04
    if "%~3" == "Maj" set honap=05
    if "%~3" == "Jun" set honap=06
    if "%~3" == "Jul" set honap=07
    if "%~3" == "Aug" set honap=08
    if "%~3" == "Sep" set honap=09
    if "%~3" == "Oct" set honap=10
    if "%~3" == "Nov" set honap=11
    if "%~3" == "Dec" set honap=12
    if %~4 lss 10 (set nap=0%~4) else (set nap=%~4)
    set ora=%~5
    echo %honap%-%nap%,%ora%,%nev%,%meret%MB>>ftp-%fajlnev%

    :vege

Új hozzászólás Aktív témák