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: 12235
  • 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 647 korisnika na forumu :: 44 registrovanih, 12 sakrivenih i 591 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: 11neco11, A.R.Chafee.Jr., aleksandar_tatic, aligrudici, amir3045, Boris90, calvi, chester_perry, Djole, docadoca, Dorcolac, Dragan1998, Faki-Valjevo, Gibli, ivica976, jovan.simovic97, KUZMAR, ltcolonel, majorgaspar, MarKhan, Marko Marković, Mercury2, Metanoja, Mikulino, mrav pesadinac, mračni čovek, ofbeyond, opt1, Outis, panticstefan53, Pavlov A.A., pein, Pippi Langstrumpf, Predrag Macura, robertino, rovac, Sall, Stole Balkanboy, Toni, VJ, Warhawk, Wrangler2, Zandar, zola92