Aide pour la commande calcs - Shell/Batch - Programmation
Marsh Posté le 16-03-2007 à 17:40:22
Hum j'ai test en local et sa marche ...
donc j'en sais rien, mais pourquoi t'utilises pas deja le meme switch ? tu bloque avec /p et tu debloque avec /g . Utilise le meme et test
Marsh Posté le 16-03-2007 à 18:14:18
Avec ceci ça ne marche pas non plu:
Code :
|
Marsh Posté le 16-03-2007 à 22:30:13
T'es bien sur un compte admin ? T'as les droits admin sur l'utilisateur sous lequel t'es ?
Marsh Posté le 17-03-2007 à 11:45:28
Et ben je comprend pas -_-
Moi par exemple je crée le dossier c:\test
en console je tape :
cacls test /p "blast killer":n
j'essaye d'acceder au repertoire, je peux pas.
ensuite :
cacls test /p "blast killer":f
et là tu peux y acceder
Test ça chez toi, et verifi si deja comme ça sa marche
Sinon j'vois que t'as mis des variables, si l'username contient des espaces oubli pas de mettre entre guillemet. Et la variable %1 c'est le premier argument rentré après le nom du script dans la console. Donc peut etre essaye de faire ça en début de script :
set dossier="%1"
Marsh Posté le 17-03-2007 à 11:59:41
Ben c'eest en début de script, la variable %1 prend déja des guillemets
Marsh Posté le 18-03-2007 à 11:04:09
Code :
|
Marsh Posté le 18-03-2007 à 11:52:49
Hum, tu codes bizarement ^^
Enfin, on code pas pareil...
@echo off
:Debut
cls & echo.&
echo ==^> (b)... Bloquer
echo ==^> (d)... Dbloquer
echo.& if not "%~1"=="" echo ==^> %~1 &echo.
set errorlevel=0
set /p Menu= ===^> Bloquer ou dbloquer ?
if not %errorlevel%== 0 goto Debut
if /i %Menu%== b cacls %1 /p "%username%":n & pause>nul
if /i %Menu%== d cacls %1 /p "%username%":f & pause>nul
goto Debut
Comme ça moi sa marche, j'ouvre une console, je tape :
fichier.bat dossier
et ensuite je tape 'b' et sa bloque le dossier 'dossier', pareil pour l'autre option.
Sinon moi j'aurais plutot codé ça comme ça :
@echo off
:debut
cls
echo.
if "%1"=="" goto erreur
echo ==^> (b)... Bloquer
echo ==^> (d)... Dbloquer
echo.
echo ==^> %1
echo.
set /p menu= ===^> Bloquer ou dbloquer ?
if /i %menu%==b cacls %1 /p "%username%":n & pause > NUL & goto :eof
if /i %menu%==d cacls %1 /p "%username%":f & pause > NUL & goto :eof
goto debut
:erreur
echo.
echo Vous n'avez pas spécifier de fichier a traiter
pause > NUL
goto :eof
Le probleme c'est que j'vois pas comment on peut faire si y'a un dossier avec un espace par exemple, parce que le gars va rentrer :
fichier.bat dos sier
et donc %1 = dos
M'enfin bon voila
Marsh Posté le 18-03-2007 à 13:52:25
Pas chez moi...
Alors, ton probleme est résolu sinon ou pas ?
Marsh Posté le 18-03-2007 à 17:40:42
Et ben c'est pas de chance, moi sa marche ^^
Viens sur MSN dès que tu peux.
Marsh Posté le 19-03-2007 à 16:14:58
blastkiller a écrit : Le probleme c'est que j'vois pas comment on peut faire si y'a un dossier avec un espace par exemple, parce que le gars va rentrer : |
L'utilisateur doit rentrer
fichier.bat "dos sier"
%1 egale donc "dos sier" (guillemets inclus) et %~1 dos sier (sans guillemets).
On peut penser a recuperer dos et sier separement puis les combiner. Probleme : la combinaison donnerait un faux resultat s'il y avait deux espaces ou plus entre dos et sier.
Marsh Posté le 16-03-2007 à 11:29:09
Bonjour, j'ai bloquer un répertoire avec cette syntaxe:
Mais je n'arrive pas a la déblouer avec cette syntaxe:
Voyer vous l'erreur ?