Controle d'un fichier en lecture

Il est parfois nécessaire de controler l'existance d'un fichier en lecture/exécution seule dans un répertoire qui est interdit en lecture pour un utilisateur. C'est le “droit de traverser” un répertoire.

La procédure classique “if exist” n'est pas valable car cela suppose que le répertoire conteneur est en lecture pour verifier dedans… ce qui n'est pas le cas.

La commande “type” ne fonctionne pas non plus… bizarre

On peut contourner le probleme avec powersehll et récupérer le code d'erreur

@echo off
set monFic=c:\interditEnLecture\monFichierEnLecture.txt

REM controle si le fichier existe en lecture
powershell -nologo "Get-Content %monFic%">nul
set a=%=ExitCode%
if %a:~-1% NEQ 0 echo not readable or not exist
pause