La meilleure façon de vérifier si le répertoire est accessible en écriture à BAT script?

Comment puis-je vérifier si un répertoire est accessible en écriture par l'utilisateur en cours d'exécution à partir d'un script batch?

Voici ce que j'ai essayé jusqu'à présent:

> cd "%PROGRAMFILES%"

> echo. > foo
Access is denied.
> echo %ERRORLEVEL%
0

Ok, alors comment sur...

> copy NUL > foo
Access is denied.
> echo %ERRORLEVEL%
0

Pas que ce soit? Alors que penser de...

> copy foo bar
Access is denied.
        0 file(s) copied.
> echo %ERRORLEVEL%
1

Cela fonctionne, mais il casse si le fichier n'existe pas.

J'ai lu quelque chose au sujet des commandes internes pas de paramètre ERRORLEVEL, mais copy semble être manifestement à le faire dans le dernier cas.

  • oh oui... environnement windows va vous déranger avec ça. De nombreuses commandes n'ont pas de rendement %errorlevel% correctement... ainsi que de nombreux installé des applications qui utilisent des arguments de ligne de commande. =D
  • haha, ouais... pour ne pas mentionner la mince proverbiale que la glace est devis et des chemins contenant des espaces. J'ai eu recours à l'aide de 8.3 chemins d'accès. 😉
  • vous pourriez avoir plus de chance avec cette question, dans la sœur du site .. superuser.com
  • Qu'est-ce que le something que vous lisez sur les commandes internes? Auriez-vous un lien à portée de main?
  • cela m'a beaucoup aidé [comment-faire-vérifier-en-ligne de commande-si-un-compte tenu de fichier ou de répertoire-est-verrouillé-utilisé-par-tout][1] [1]: stackoverflow.com/questions/10518151/...
InformationsquelleAutor batshcrazy | 2011-09-01