7
votes

Comment vérifier si un fichier / dir est écritable dans les scripts de lot

in Bash, j'utiliserais

[ -w ... ]


3 commentaires

Dupliqué possible de meilleure façon de vérifier si le répertoire est Entreprise dans le script Bat?


@darthbith Comment peut-il être un duplicata si elle prédit la question probablement-dupliquée de plus d'un an?


Alors peut-être que le duplicata devrait aller dans l'autre sens ¯_ (ツ) _ / ¯ que l'on a une meilleure réponse cependant, imo


5 Réponses :


0
votes

Vous pouvez le faire comme ceci à l'aide de VBScript xxx

sauvegardez comme check.vbs et sur la ligne de commande xxx


1 commentaires

Les ACL sont impliqués aussi. Voir la réponse de Álvaro.



3
votes

Autant que je sache, vous pouvez savoir si le fichier existe ou non , mais il n'y a aucun moyen de savoir s'il est écrit, mis à part essayer d'écrire dessus. Ce n'est pas seulement une question de ne pas avoir le drapeau r ; Les autorisations de réseau et de NTFS sont également impliquées (et probablement des politiques de groupe aussi).

Si vous pouvez réécrire votre code, vous pouvez capturer le code de retour du bac d'opération d'écriture, ERRORLEVEL .


4 commentaires

+1 pour mentionner les autorisations. Ce n'est certainement pas seulement une question de drapeau en lecture seule qui serait trivial pour vérifier avec % ~ hache ou quelque chose comme ça.


Ceci juste incroyable comment une réponse de Stackoverflow acceptée devient incorrecte après un passage de temps: Stackoverflow.com/questions/1999988/...


@Andry pouvez-vous s'il vous plaît élaborer sur quelles informations de cette réponse sont devenues obsolètes? À moins que je manque quelque chose, le lien que vous avez partagé ne montre que comment tenter d'écrire sur un fichier afin de déterminer s'il réussit.


@ Álvaro González Il n'essaie pas d'écrire aussi longtemps que les moments d'accès ne changent pas, il y a donc une façon de savoir s'il est écritable sans écrire.



1
votes

Désolé les gens pour avoir chiming ici ..

Cela peut ne pas être 100% de ce que vous recherchez, mais j'en ai utilisé cela avec des fichiers journaux intégrés pour Apache Tomcat et cela fonctionne parfaitement.

Merci à @dbenham pour son code génial! https://stackoverflow.com/a/10520609/175063 xxx < / p>


0 commentaires

-1
votes
ls -l foo.txt
outputs -r--r--r-- for a not writable file
outputs -rw-r--r-- for a writable fileyou could store the value and check if the 3rd character is "w" for writable or "-" for not writable.using some syntax like %myVar:~2,1% in a conditional statement.not sure how OS dependent this would be.

0 commentaires