Jak zjistit velikost souboru pomocí *.bat

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

zetrozet
nováček
Příspěvky: 33
Registrován: září 12
Pohlaví: Muž
Stav:
Offline

Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zetrozet » 02 zář 2012 21:53

Potřebuji zjistit velikost souboru pomocí dávky, v podstatě mi stačí rozlišit soubor nulové velikosti od souborů větších pro rozhodnutí, zda *.zip rozbalovat nebo přeskočit. Jeden takový prázdný ZIP přikládám.

Reklama
Uziv00
Pohlaví: Nespecifikováno

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod Uziv00 » 02 zář 2012 23:36

V .bat pochybuji. můžeš zkusit Honzu Paška, třeba bude vědět. Jinak předpokládám, že by to šlo ve vbs, pokud máš zájem, můžu zkusit během týdne něco napsat.

zetrozet
nováček
Příspěvky: 33
Registrován: září 12
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zetrozet » 03 zář 2012 13:52

V podstatě by mi stačilo zjistit, jestli soubor něco (cokoli) obsahuje. Pokud správně předpokládám soubor velikosti "nula" neobsahuje vůbec nic. Přikládám *.bat, kterým jsem se neúspěšně pokoušel ono "nic" zjišťovat.

Protože mám jeden *.ZIP-soubor s dlouhým (Win) názvem denně, není-li *.ZIP nulový,je v pakovanci soubor s názvem "pomlčka" a chci obsah dostat do databáze obsluhované 16-bitovým interpretem (PC FAND), snažil jsem se každý *.ZIP vypakovat do ASCII souboru s nezaměnitelným DOS-názvem v jednom procesu.

zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 11108
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zeus » 03 zář 2012 17:02

Tvuj bat nevidim jen ja nebo maji ostatni stejny problem? Klidne ho vloz pomoci code.
Prazaci jo ty se maj, az kdyz si me zavolaj..

zetrozet
nováček
Příspěvky: 33
Registrován: září 12
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zetrozet » 03 zář 2012 17:29

Kód: Vybrat vše

::COPYH_BAT
if exist D:\PRIJATE\TOPLIST\PRG\COPYH.txt del D:\PRIJATE\TOPLIST\PRG\COPYH.txt
if not exist D:\PRIJATE\TOPLIST\TOPLIST_2011_9_2.ZIP goto nocopy
copy D:\PRIJATE\TOPLIST\TOPLIST_2011_9_2.ZIP D:\PRIJATE\TOPLIST\TMP\TP110902.ZIP
findstr /R /C:. /G:D:\PRIJATE\TOPLIST\TMP\TP110902.ZIP /M > D:\PRIJATE\TOPLIST\PRG\COPYH.txt
if not exist D:\PRIJATE\TOPLIST\PRG\COPYH.txt goto nounzip
C:\PROGRA~1\IZARC\IZARC.EXE -ef D:\PRIJATE\TOPLIST\TMP\ D:\PRIJATE\TOPLIST\TMP\TP110902.ZIP
move D:\PRIJATE\TOPLIST\TMP\TP110902\- D:\PRIJATE\TOPLIST\TMP\TP110902.TXT > nul
rmdir D:\PRIJATE\TOPLIST\TMP\TP110902
del D:\PRIJATE\TOPLIST\TMP\TP110902.ZIP
:nounzip
move D:\PRIJATE\TOPLIST\TOPLIST_2011_9_2.ZIP D:\PRIJATE\TOPLIST\FIN\TOPLIST_2011_9_2.ZIP
:nocopy
echo D:\PRIJATE\TOPLIST\PRG\COPYH.txt >> D:\PRIJATE\TOPLIST\PRG\COPYH.txt
:end

zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 11108
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zeus » 03 zář 2012 18:14

Korektne vytvoreny zip zacina retezcem PK (resp. 50 4b 03 04 14 hexa), testuj jeho pritomnost (staci PK), i kdyz ta tecka (jako regularni vyraz) se zda byt ok.
Ale unika mi podminka

Kód: Vybrat vše

if not exist D:\PRIJATE\TOPLIST\PRG\COPYH.txt goto nounzip
ten txt soubor se VZDY vytvori v predchozim kroku (findstr).
Prazaci jo ty se maj, az kdyz si me zavolaj..

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod faraon » 03 zář 2012 18:25

Potřebuješ externí příkaz - program, který ti zjistí jestli soubor zadaného jména existuje a má nějakou velikost, nebo je prázdný. Návratovou hodnotu toho programu můžeš testovat příkazem errorlevel a podle toho v dávce skočit na příslušné návěstí, kde se vykoná požadovaná činnost:

Kód: Vybrat vše

@echo off

obsah.exe nic.txt
if errorlevel 1 goto zpracuj
goto konec

:zpracuj
echo PRACUJI

:konec


Můžou nastat čtyři možnosti:
1. Nezadáš název, program vrátí 0.
2. Zadaný soubor neexistuje, program vrátí 0.
3. Soubor existuje, ale nic v něm není, program vrátí 0.
4. Soubor existuje a je v něm aspoň jeden bajt, program vrátí 1.

Program i se zdrojákem a testovací dávkou máš v příloze, je to jen v šestnáctibitovém QBasicu, takže od toho nečekej zázraky, hlavně bacha na názvy souborů, které to umí jen v DOSovém formátu 8.3, takže musíš odzkoušet co ta vykopávka udělá ;-)

A nezapomeň to projet antivirem, sice bych tu v DOSBoxu žádnou verbež mít neměl, ale nikdy si nemůžeš být jistý...

obsah.zip
(29.21 KiB) Staženo 39 x
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

zetrozet
nováček
Příspěvky: 33
Registrován: září 12
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zetrozet » 03 zář 2012 18:52

Jen doplňující dotaz - DOS-adresáře zvládá nebo je nezbytné umístit "obsah.exe" do adresáře se souborem?

zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 11108
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zeus » 03 zář 2012 19:00

Staci kamkoliv do cesty (promena PATH).
Naposledy upravil(a) zeus dne 03 zář 2012 19:01, celkem upraveno 1 x.
Prazaci jo ty se maj, az kdyz si me zavolaj..

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod faraon » 03 zář 2012 19:01

Musí být v některém z adresářů z proměnné PATH, třeba C:\Windows. Pak ho můžeš spouštět jako každý jiný příkaz odkudkoliv.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

zetrozet
nováček
Příspěvky: 33
Registrován: září 12
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod zetrozet » 03 zář 2012 19:18

Asi jsem se nevyjádřil přesně - šlo mi o to, jestli parametr může obsahovat cestu nebo to musí být "čistý" název souboru. Zdroják je jasný a jednoduchý, ale o to víc závisí fungování na vlastnostech QBasicu.

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Jak zjistit velikost souboru pomocí *.bat

Příspěvekod faraon » 03 zář 2012 19:28

Ano, můžeš zadat i cestu, jen pozor na to že v DOSu směla mít jen 63 znaky, takže se nedá mockrát vnořovat. Ale hodně zase uberou ty 8.3 názvy: C:\Docume~1\Moje\Pokusy\soubor.txt

Možná by bylo lepší vyrobit to ve Free Pascalu, ten by už dlouhé názvy měl umět.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Velikost souboru a složek na disku
    od L.L » 05 úno 2025 11:50 » v Vše ostatní (sw)
    5
    3277
    od L.L Zobrazit poslední příspěvek
    05 úno 2025 17:42
  • Jak zjistit verzi displayportu u notebooku
    od walderan » 24 dub 2025 21:09 » v Problémy s hardwarem
    5
    2755
    od petr22 Zobrazit poslední příspěvek
    24 dub 2025 23:01
  • Sledování pomocí hodinek
    od palecek » 29 srp 2024 09:47 » v Mobily, tablety a jiná přenosná zařízení
    3
    3828
    od GamerXXX Zobrazit poslední příspěvek
    02 zář 2024 12:25
  • Blokování stahovaných souborů
    od Riviera kid » 07 čer 2025 16:47 » v Windows 11, 10, 8...
    10
    3298
    od Riviera kid Zobrazit poslední příspěvek
    16 čer 2025 06:56
  • Program na hledání poškozených souborů JPG Příloha(y)
    od Rosta_Kolmix » 09 lis 2024 11:01 » v Design a grafické editory
    2
    4510
    od Minapark Zobrazit poslední příspěvek
    15 lis 2024 11:04

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti