Utilisez le script batch pour vérifier si le fichier est caché
0
J'écris un fichier de commandes qui va afficher et exécuter un autre fichier de commandes ou, si le fichier est déjà non caché, exécuter le fichier de commandes et le cacher à nouveau. Comment vérifier si un fichier est caché?
J'ai un code qui peut afficher des fichiers lorsque les fichiers cachés ne peuvent pas être décochés. La voici - attrib -s -h K: *. * / S / d Mais je ne connais aucune méthode pour vérifier comment obtenir une liste de fichiers cachés. Apprendre encore plus
1) DIR / AH (probablement la méthode la plus simple)
Utilisez la commande DIR pour rechercher un fichier avec un attribut particulier. Retourne succès si trouvé, erreur sinon.
dir /ah file.ext >nul 2>nul && (
echo file.ext is hidden
) || (
echo file.ext is NOT hidden
)
2) Commande ATTRIB
Les codes d'attribut sont en majuscule. Le code pour caché est Het je crois qu’il est toujours en cinquième position. Utilisez FINDSTR pour rechercher le code.
attrib file.ext | findstr "^....H" >nul && (
echo file.ext is hidden
) || (
echo file.ext is NOT hidden
)
3) POUR variable ~a modificateur
Les codes d'attribut sont en minuscules et dans un ordre différent de celui de la commande ATTRIB. Le code pour caché est h en quatrième position. Utilisez FINDSTR pour rechercher le code.
for %%F in (file.ext) do echo %%~aF | findstr "^...h" >nul 2>nul &&
echo file.ext is hidden
) || (
echo file.ext is NOT hidden
)
ou utilisez une opération de sous-chaîne. N'oubliez pas que la sous-chaîne est 0 indexée.
for %%F in (file.ext) do set "attr=%%~aF"
if %attr:~3,1% equ h (
echo file.ext is hidden
) else (
echo file.ext is NOT hidden
)
4) paramètre ~a modificateur
Fondamentalement identique à celui de la variable FOR, excepté l’utilisation d’un paramètre de script ou de sous-routine.
call :IsHidden file.ext &&
echo file.ext is hidden
) else (
echo file.ext is NOT hidden
)
exit /b
:isHidden
echo %~a1 | findstr "^...h" >nul 2>nul
exit /b
ou
call :IsHidden file.ext &&
echo file.ext is hidden
) else (
echo file.ext is NOT hidden
)
exit /b
:isHidden
setlocal
set "att=%~a1"
if %att:~3,1% equ h exit /b 0
exit /b 0
Réponses:
Vous pouvez l’utiliser dans PowerShell pour obtenir une liste des fichiers cachés.
Vous devriez pouvoir utiliser
dir/ah
pour le même résultat en cmd dans le chemin actuel.la source
Beaucoup de façons.
1) DIR / AH (probablement la méthode la plus simple)
Utilisez la commande DIR pour rechercher un fichier avec un attribut particulier. Retourne succès si trouvé, erreur sinon.
2) Commande ATTRIB
Les codes d'attribut sont en majuscule. Le code pour caché est
H
et je crois qu’il est toujours en cinquième position. Utilisez FINDSTR pour rechercher le code.3) POUR variable
~a
modificateurLes codes d'attribut sont en minuscules et dans un ordre différent de celui de la commande ATTRIB. Le code pour caché est
h
en quatrième position. Utilisez FINDSTR pour rechercher le code.ou utilisez une opération de sous-chaîne. N'oubliez pas que la sous-chaîne est 0 indexée.
4) paramètre
~a
modificateurFondamentalement identique à celui de la variable FOR, excepté l’utilisation d’un paramètre de script ou de sous-routine.
ou
la source