Aide pour la commande calcs

Aide pour la commande calcs - Shell/Batch - Programmation

Marsh Posté le 16-03-2007 à 11:29:09    

Bonjour, j'ai bloquer un répertoire avec cette syntaxe:

Code :
  1. cacls %1 /p %username%:n


Mais je n'arrive pas a la déblouer avec cette syntaxe:

Code :
  1. cacls %1 /e /g %username%:f


Voyer vous l'erreur ?

Reply

Marsh Posté le 16-03-2007 à 11:29:09   

Reply

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

Reply

Marsh Posté le 16-03-2007 à 18:14:18    

Avec ceci ça ne marche pas non plu:

Code :
  1. cacls %1 /e /p %username%:f

Reply

Marsh Posté le 16-03-2007 à 18:40:53    

et ben renleve le /e

Reply

Marsh Posté le 16-03-2007 à 18:51:19    

en enlevant le /e ça ne change rien

Reply

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 ?

Reply

Marsh Posté le 17-03-2007 à 09:29:20    

Oui je suis admin

Reply

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"

Reply

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

Reply

Marsh Posté le 17-03-2007 à 20:59:18    

Vasy fait voir ton code complet stp

Reply

Marsh Posté le 17-03-2007 à 20:59:18   

Reply

Marsh Posté le 18-03-2007 à 11:04:09    

Code :
  1. :Debut
  2.   cls & echo.&
  3.    echo  ==^> (b)... Bloquer
  4.    echo  ==^> (d)... D‚bloquer
  5.   echo.& if not "%~1"=="" echo  ==^> %~1 &echo.
  6. set errorlevel=0
  7. set /p Menu= ===^> Bloquer ou d‚bloquer ?
  8. if not %errorlevel%== 0 goto Debut
  9.   if /i %Menu%== b cacls %1 /p %username%:n & pause>nul
  10.   if /i %Menu%== d cacls %1 /e /g %username%:f & pause>nul
  11. goto Debut

Reply

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)... D‚bloquer
echo.& if not "%~1"=="" echo  ==^> %~1 &echo.
set errorlevel=0
set /p Menu= ===^> Bloquer ou d‚bloquer ?
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)... D‚bloquer
echo.
echo  ==^> %1
echo.
set /p menu= ===^> Bloquer ou d‚bloquer ?  
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

Message cité 1 fois
Message édité par blastkiller le 18-03-2007 à 11:52:58
Reply

Marsh Posté le 18-03-2007 à 12:20:10    

Non la variable %1 ajoute des guillemets

Reply

Marsh Posté le 18-03-2007 à 13:52:25    

Pas chez moi...
Alors, ton probleme est résolu sinon ou pas ?

Reply

Marsh Posté le 18-03-2007 à 17:12:06    

non

Reply

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.

Reply

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 :
fichier.bat dos sier
et donc %1 = dos


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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed