Batch tip: testiranje za direktorijum

Batch tip: testiranje za direktorijum

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12244
  • Gde živiš: Južni pol

Adaptirano iz news grupe "alt.msdos.batch". Dodate verzije za MS DOS, Windows 9x i 4DOS.

testdir.bat
@echo off if not exist "%~1" echo %1 ne postoji & pause & exit dir "%1" /b /a:d /-p >nul 2>&1 if errorlevel 1 ( echo file ) else ( echo folder ) pause

Testirano:
Windows 2000, Windows XP

Reference:
Echo
http://www.microsoft.com/resources/documentation/w...../echo.mspx
Dir
http://technet.microsoft.com/en-us/library/cc773112%28WS.10%29.aspx
Pause
http://www.microsoft.com/resources/documentation/w.....pause.mspx
if
http://www.microsoft.com/resources/documentation/w.....x?mfr=true
Using batch parameters
http://www.microsoft.com/resources/documentation/w.....x?mfr=true
Using command redirection operators
http://www.microsoft.com/resources/documentation/w.....ction.mspx


Modifikacija za MS DOS i Windows 9x
( testirano na MS DOS-u 6.22, Windowsu 95 i Windows 98 )

testd9x.bat
@echo off dir /b /a:d /-p | find /i "%1" >nul if ERRORLEVEL 1 goto FILE goto FOLDER :FILE if not exist %1 goto NEPOSTOJI echo file goto EOF :FOLDER echo folder goto EOF :NEPOSTOJI echo %1 ne postoji. :EOF

Zašto ovako?
"if exist" u MS DOSu testira samo za fajlove, ne i za direktorijume. Dir ne vraća "errorlevel". Kada se navede direktorijum, dir prikazuje sadržaj direktorijuma. IF u MS DOSu i Win 9x ne podržava else klauzulu. U Windowsu 9x IF EXIST test ne radi na dugim imenima fajlova čak ni kada se promenljive okruže navodnicima.

4DOS verzija

4DOS je alternativni DOS shell za MS DOS/Win9x (NT verzija se zvala 4NT, trenutno aktuelna verzija za novije Windowse se zove TakeCommand). 4DOS poseduje mnoga proširenja u odnosu na DOS/Windows batch jezik uključujući već ugrađenu komandu za proveru da li je u pitanju direktorijum. 4DOS podržava i LFN pod Windowsima 9x.

test4dos.btm
@echo off iff isdir "%1" then echo folder elseiff exist "%1" then echo file else echo "%1" ne postoji endiff



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 559 korisnika na forumu :: 46 registrovanih, 6 sakrivenih i 507 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., alex1974, aljosa7, amaterSRB, Apok, Bane san, cavatina, cvrle312, darkangel, Dedal, dejan.lxxiv, Dicus, dragon986, DucicM, duskovuk63, goxin, i.jovanovich, ivance95, Joja, Kaplar2, Marko Marković, Markoni29, matorigile, mercedesamgzakon, Mercury, Mihajlo2, MILO-VAN, Mixelotti, NenadG, panonski mornar, pein, Radovan Vinčić, radoznao, Raptor12, RJ, rovac, sakota79, Sima zna, stug, Toni, VES 11119, vespa nikola, VJ, voja64, zdrebac, zoxknez