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 ?