Comportement différent entre exécution classique et exécution "en tant que&

Fermé
yaphilde Messages postés 35 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 25 octobre 2022 - 18 déc. 2018 à 17:25
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 19 déc. 2018 à 21:21
Bonjour,
Je vous présente un batch d'automatisation de création et de gestion de dossiers.
Il fonctionne parfaitement en l'exécutant normalement (double clic) les menus fonctionnent comme je le souhaite, à la fin je peux relancer mon batch ou le quitter.

Alors qu'en l'exécutant en tant que (Admin du domaine) j'ai mon mon batch qui à un comportement différent:
-Les menus qui ne bouclent pas.
-Les accents ne s'affichent plus lors de la saisie
-Et certainement d'autres détails que je n'ai pas encore vu.

Pour info concernant le BATCH
-le mot de passe du début c'est "YLG" en Majuscule.
-Les variables du mode BAS et Prod sont les même car je n'ai pas mis les variables réelles de Prod

Pour bien fonctionner si vous souhaitez faire des tests il faut créer 5 dossiers et 2 sous dossiers (et dans ceux ci, l’idéal serait d'y mettre des fichiers et dossiers) au même niveau que le batch:
00_Modele
NonNotifie
Usager
01_Usager
02_NonNotifie
03_Raccourcis
100_Journaux


J'utilise Nircmd pour faire le raccourcis d'un fichier excel que j'ai besoin (mais ca fonctionne bien dans les deux cas d'utilisation) donc on peut commenter la ligne.



Je n'arrive pas à m'en sortir et si une âme charitable pouvait m'accompagner pour bien terminée cette année 2018 je lui en serait reconnaissant éternellement :p!
Je suis sous Win7Pro

Voici mon script:

@echo Off
cls
echo Rapport du %TIME% >Rapport.txt
::----------------------------------------------------------------------------------GESTION DES ACCES-------------------------------------------------------------------------------------------
:MDP
::Gestion acces au PACKADMIN
		::Affichage Utilisateur
			echo mot de passe:
			echo ylg
			
		::Variables
			set MDP=
			set /p MDP=Taper votre mot de passe: 
			
			if %MDP%==YLG goto :ChoixMode else goto :MDPERREUR
			if %MDP%==AD goto :ChoixMode else goto :MDPERREUR
			if %MDP%==VP goto :ChoixMode else goto :MDPERREUR
			if %MDP%==NM goto :ChoixMode else goto :MDPERREUR
			if %MDP%==GJ goto :ChoixMode else goto :MDPERREUR
			
			::if %MDP%==Sources goto :SOURCES else goto :MDPERREUR
			::if %MDP%==BAS goto :MODEBAS else goto :MDPERREUR
			::if %MDP%==Prod goto :DEBUT else goto :MDPERREUR
		
			
:MDPERREUR
	cls
		::Affichage Utilisateur
			echo erreur de mot de passe
			echo veuillez reessayer
			pause
		::Actions
			goto :MDP
::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::----------------------------------------------------------------------------------DEFINITION DES VARIABLES-----------------------------------------------------------------------------------------
:ChoixMode
cls
echo Choix du mode VITUEL ou REEL
echo.                       
echo -------------------------------------------
echo Taper 1 Mode BAS
echo Taper 2 Mode Production
echo -------------------------------------------
echo Taper q pour quitter
echo -------------------------------------------
echo.   
echo.			
				::Variables
			
					set choice=
					set /p choice=Votre choix?

				::Action
					if %choice%==1 goto :variableBAS
					if %choice%==2 goto :variableProd
					if %choice%==q goto :quitter

:variableBAS
chcp 65001 > nul
			::UsagerNotifie
						set ModeleUsagerNotifie=%~dp000_Modele\Usager
						set DossierDeProdNotifie=%~dp001_Usager\

			::UsangerNonNotifie
						set ModeleUsagerNonNotifie=%~dp000_Modele\NonNotifie
						Set DossierDeProdNonNotifie=%~dp002_NonNotifie\
						
												
			::Gestion du renommage et raccourci						
						set CheminSourcePart1=%~dp001_Usager
						set CheminSourcePart3=R2 Accompagner\06 - Accompagnement pluridisciplinaire\07- Suivi d'activité
															
						set FichierATraiter=Outil suivi activité 2018
						set Extension=.xlsm

						set DestinationRaccourci=%~dp0\03_Raccourcis
		
			::NonNotifieVersExistant
			
			::Journaux
						set RobocopyLOG=%~dp0\100_Journaux\robocopy.log
						Set Journalisation="%~dp0\100_Journaux\Journalisation.txt"
						set ListeNonNotifie=%~dp0100_Journaux\ListeNonNotifie.txt
						set Mode=
						set Mode=BAS 
goto :MENU

:variableProd
chcp 65001 > nul
			::UsagerNotifie
						set ModeleUsagerNotifie=%~dp000_Modele\Usager
						set DossierDeProdNotifie=%~dp001_Usager\

			::UsangerNonNotifie
						set ModeleUsagerNonNotifie=%~dp000_Modele\NonNotifie
						Set DossierDeProdNonNotifie=%~dp002_NonNotifie\
						
												
			::Gestion du renommage et raccourci						
						set CheminSourcePart1=%~dp001_Usager
						set CheminSourcePart3=R2 Accompagner\06 - Accompagnement pluridisciplinaire\07- Suivi d'activité
															
						set FichierATraiter=Outil suivi activité 2018
						set Extension=.xlsm

						set DestinationRaccourci=%~dp0\03_Raccourcis
		
			::NonNotifieVersExistant
			
			::Journaux
						set RobocopyLOG=%~dp0\100_Journaux\robocopy.log
						Set Journalisation="%~dp0\100_Journaux\Journalisation.txt"
						set ListeNonNotifie=%~dp0100_Journaux\ListeNonNotifie.txt
						set Mode=
						set Mode=Prod
goto :MENU

::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


::-------------------------------------------------------------------------------------GESTION DU MENU-----------------------------------------------------------------------------------------------


:MENU
::Création du menu
			::Affichage Utilisateur
					cls
					echo MENU
					echo.
			
					echo ----------------------------------------------------------
					echo 1: Ajout USAGER NOTIFIE                 
					echo ----------------------------------------------------------
					echo 2: Ajout USAGER NON NOTIFIE     
					echo ----------------------------------------------------------
					echo 3: Bascule Usager NON NOTIFIE vers USAGER NOTIFIE    
					echo ----------------------------------------------------------
					echo 4:QUITTER
					echo ----------------------------------------------------------
				
			
			
			::Variables
						set choice=
						set /p choice=Votre choix?
						set Validation=
			::Action
						if %choice%==1 goto UsagerNotifie
						if %choice%==2 goto UsagerNONNotifie
						if %choice%==3 goto NonNotifieVersExistant
						if %choice%==4 goto quitter
			

::-------------------------------------------------------------------------------------Choix 1 : Ajout USAGER NOTIFIE-----------------------------------------------------------------------------------------------
:UsagerNotifie
			::Affichage Utilisateur
					@echo off
					cls		
					echo Creation de l arborescence pour un nouvel usager du CSES PEYRELONGUE AMBARES
					

			:: Les Variables
						set tache=Creation UsagerNotifie
	echo ----- Debut de La tache %tache% pour -- %NomUsager%  realisee par -- %mdp%  a %time%>>%Journalisation%						
						set /p NomUsager= Nom du dossier usager a creer : 
						set CheminSource=%CheminSourcePart1%\%NomUsager%\%CheminSourcePart3%\
						
			::Verification si dossier existe déjà			
							if exist "%DossierDeProdNotifie%%NomUsager%" goto :alerte
				
			::Action
				chcp 850 > nul			
						robocopy "%ModeleUsagerNotifie%" "%DossierDeProdNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
				chcp 65001 > nul		
					
						ren "%CheminSource%%FichierATraiter%%Extension%" "%FichierATraiter% - "%NomUsager%%Extension%"
				
			::Creation Raccourci
				nircmd.exe shortcut "%CheminSource%%FichierATraiter% - %NomUsager%%Extension%" "%DestinationRaccourci%" "%FichierATraiter% - %NomUsager%" "min"
			
				goto :fin
::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::-------------------------------------------------------------------------------------Choix 2 : Ajout USAGER NON NOTIFIE-----------------------------------------------------------------------------------------------			
:UsagerNONNotifie
			::Affichage Utilisateur
					@echo off
					cls		
					echo Creation de l arborescence pour un nouvel usager NON NOTIFIE du CSES PEYRELONGUE AMBARES
			
			:: Les Variables	
						set tache=Creation UsagerNONNotifie
	echo ----- Debut de La tache %tache% pour -- %NomUsager%  realisee par -- %mdp%  a %time%>>%Journalisation%						
						set /p NomUsager= Nom du dossier usager a creer : 
			
			::Verification si dossier existe déjà			
							if exist "%DossierDeProdNonNotifie%%NomUsager%" goto :alerte
			
			::Action
				chcp 850 > nul	
						robocopy "%ModeleUsagerNonNotifie%" "%DossierDeProdNonNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
				chcp 65001 > nul
				
			
				goto :FIN
			
::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------			
			
::-------------------------------------------------------------------------------------Choix 3 : Bascule Usager NON NOTIFIE vers USAGER NOTIFIE-------------------------------------------------------------------------
:NonNotifieVersExistant			

			::Affichage Utilisateur
					@echo off
					cls		
					echo TRANSFERT usager NON NOTIFIE VERS dossier des NOTIFIES
					
			:: Les Variables
					set tache="Creation NonNotifieVersExistant"
	echo ----- Debut de La tache %tache% pour -- %NomUsager%  realisee par -- %mdp%  a %time%>>%Journalisation%					
			
				chcp 1252 >nul
				
			::Creation liste usager
			echo %ListeNonNotifie%>>%Journalisation%	
					dir "%DossierDeProdNonNotifie%"/B /AD >"%ListeNonNotifie%"
			
			::Affichage du menu numéroté
					for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . "%ListeNonNotifie%"') do echo %%i %%j

			::sélection de l'usager à traiter
					set /p NumLigne=saisir le numero de l'usager concerne:
					call :getline "%ListeNonNotifie%" %NumLigne%
			
			goto :action
 
:getline
			<%1 (for /l %%A in (1 1 %~2) do (set "NomUsager=" & set /p "NomUsager="))



		::Bascule du dossier usager NON Notifié vers dossier usager EXISTANT
			::Affichage Utilisateur
					@echo off
					cls		
					echo l usager %NomUsager% va etre integrer aux usagers notifies
					echo %ModeleUsagerNonNotifie%%NomUsager% vers %DossierDeProdNotifie%%NomUsager%
					echo.
					echo.
				
		if exist "%DossierDeProdNotifie%%NomUsager%\R0 Avant Notification" goto :alerte else goto :copie
		
		
:copie
		robocopy "%DossierDeProdNonNotifie%%NomUsager%" "%DossierDeProdNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
		
		if exist "%DossierDeProdNotifie%%NomUsager%\R1 Accueillir" goto :CleanNonNotifie else goto :FindeNotifie
		
:FinDeNotifie
			
		::Variables
		set CheminSource=%CheminSourcePart1%\%NomUsager%\%CheminSourcePart3%\
	
		::Action
			chcp 850 > nul
				robocopy "%ModeleUsagerNotifie%" "%DossierDeProdNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
			chcp 65001 > nul
		
		
		
			ren "%CheminSource%%FichierATraiter%%Extension%" "%FichierATraiter% - "%NomUsager%%Extension%"
			
		::Creation Raccourci
			nircmd.exe shortcut "%CheminSource%%FichierATraiter% - %NomUsager%%Extension%" "%DestinationRaccourci%" "%FichierATraiter% - %NomUsager%" "min"

			
	goto :CleanNonNotifie

			
 

:CleanNonNotifie
::Supression du dossier Non Notifié une fois le transfert terminé	
		echo Suppression de l usager du dossier non notifié
		rmdir /s /q "%DossierDeProdNonNotifie%%NomUsager%"	
		
	goto :fin
	chcp 65001 > nul		
					
	
					
				
	

::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::-------------------------------------------------------------------------------------GESTION DES ALERTES-------------------------------------------------------------------------		
:Alerte
		cls
		set tache=Utilisateur deja existant
		echo ALERTE l'utilisateur %NomUsager% EXISTE DEJA!!!!!
		echo ALERTE : %mdp% %Mode% %tache% %NomUsager% %line% %time% >>%Journalisation%
		pause	
		
		goto :fin
::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



::-------------------------------------------------------------------------------------SORTIE ET JOURNALISATION-------------------------------------------------------------------------
:Fin
cls
echo Votre tache de %tache% pour l'USAGER : %NomUsager% a bien ete realisee
echo ----- Fin de La tache %tache% pour -- %NomUsager%  realisee par -- %mdp%  a %time%>>%Journalisation%
echo.>>%Journalisation%
echo.>>%Journalisation%
echo ------------------------------------------------------------------------------------------------------->>%Journalisation%
echo merci

::RAPPORT des Variables
echo %time%>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt
echo variable NomUsager : %NomUsager%>>RapportFinal.txt
	
echo USAGER NOTIFIE>>RapportFinal.txt
		echo Modele Usager Notifie      : %ModeleUsagerNotifie%>>RapportFinal.txt
		echo Dossier De Prod Notifie    : %DossierDeProdNotifie%>>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt
						
echo USAGER NON NOTIFIE>>RapportFinal.txt
		echo Modele Usager NonNotifie   : %ModeleUsagerNonNotifie%>>RapportFinal.txt
		echo Dossier De Prod NonNotifie : %DossierDeProdNonNotifie%>>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt		

echo Gestion du renommage et raccourci>>RapportFinal.txt						
		echo CheminSourcePart1          : %CheminSourcePart1%>>RapportFinal.txt
		echo CheminSourcePart3          : %CheminSourcePart3%>>RapportFinal.txt
											
		echo FichierATraiter            : %FichierATraiter%>>RapportFinal.txt%
		echo Extension                  : %Extension%>>RapportFinal.txt

		echo DestinationRaccourci       : %DestinationRaccourci%>>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt
					
Echo Journaux
		echo RobocopyLOG                : %RobocopyLOG%>>RapportFinal.txt
		echo Journalisation             : %Journalisation%>>RapportFinal.txt
		echo Liste NonNotifie           : %ListeNonNotifie%>>RapportFinal.txt


echo rmdir /s /q "%DossierDeProdNonNotifie%%NomUsager%" >>RapportFinal.txt

	set tache=
	set NomUsager=


cls
echo Choix du mode VITUEL ou REEL
echo.                       
echo -------------------------------------------
echo Taper 1 Pour réaliser une nouvelle opération
echo -------------------------------------------
echo Taper q pour quitter
echo -------------------------------------------
echo.   
echo.			
				::Variables
			
					set choice=
					set /p choice=Votre choix?

				::Action
					if %choice%==1 goto :MENU
					if %choice%==q goto quitter



::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
:quitter
cls
echo taches terminees
pause exit









Merci d'avance à tout le monde


Configuration: Windows / Chrome 70.0.3538.110

1 réponse

barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 919
18 déc. 2018 à 22:40
Bonjour,

Je te suggère de toujours commencer tes scripts par cette commande : cd /d %~dp0
Ca évite pas mal de problèmes surtout si tu dois exécuter ton script en tant qu'admin.

J'ai remarqué quelques oublis, au niveau des menus, qui peuvent expliquer que certains menus ne bouclent pas.

@echo Off
setlocal enableextensions disabledelayedexpansion
chcp 1252 >nul

cd /d %~dp0
cls
echo Rapport du %TIME% >Rapport.txt
::----------------------------------------------------------------------------------GESTION DES ACCES-------------------------------------------------------------------------------------------
:MDP
::Gestion acces au PACKADMIN
::Affichage Utilisateur
echo mot de passe:
echo ylg

::Variables
set MDP=
set /p MDP=Taper votre mot de passe:

if %MDP%==YLG goto :ChoixMode
if %MDP%==AD goto :ChoixMode
if %MDP%==VP goto :ChoixMode
if %MDP%==NM goto :ChoixMode
if %MDP%==GJ goto :ChoixMode

::if %MDP%==Sources goto :SOURCES
::if %MDP%==BAS goto :MODEBAS
::if %MDP%==Prod goto :DEBUT


:MDPERREUR
cls
::Affichage Utilisateur
echo erreur de mot de passe
echo veuillez reessayer
pause
::Actions
goto :MDP
::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::----------------------------------------------------------------------------------DEFINITION DES VARIABLES-----------------------------------------------------------------------------------------
:ChoixMode
cls
echo Choix du mode VIRTUEL ou REEL
echo.
echo -------------------------------------------
echo Taper 1 Mode BAS
echo Taper 2 Mode Production
echo -------------------------------------------
echo Taper q pour quitter
echo -------------------------------------------
echo.
echo.
::Variables

set choice=
set /p choice=Votre choix?

::Action
if %choice%==1 goto :variableBAS
if %choice%==2 goto :variableProd
if %choice%==q goto :quitter

:variableBAS
chcp 65001 > nul
::UsagerNotifie
set ModeleUsagerNotifie=%~dp000_Modele\Usager
set DossierDeProdNotifie=%~dp001_Usager\

::UsangerNonNotifie
set ModeleUsagerNonNotifie=%~dp000_Modele\NonNotifie
Set DossierDeProdNonNotifie=%~dp002_NonNotifie\


::Gestion du renommage et raccourci
set CheminSourcePart1=%~dp001_Usager
set CheminSourcePart3=R2 Accompagner\06 - Accompagnement pluridisciplinaire\07- Suivi d'activité

set FichierATraiter=Outil suivi activité 2018
set Extension=.xlsm

set DestinationRaccourci=%~dp0\03_Raccourcis

::NonNotifieVersExistant

::Journaux
set RobocopyLOG=%~dp0\100_Journaux\robocopy.log
Set Journalisation="%~dp0\100_Journaux\Journalisation.txt"
set ListeNonNotifie=%~dp0100_Journaux\ListeNonNotifie.txt
set Mode=
set Mode=BAS
goto :MENU

:variableProd
chcp 65001 > nul
::UsagerNotifie
set ModeleUsagerNotifie=%~dp000_Modele\Usager
set DossierDeProdNotifie=%~dp001_Usager\

::UsangerNonNotifie
set ModeleUsagerNonNotifie=%~dp000_Modele\NonNotifie
Set DossierDeProdNonNotifie=%~dp002_NonNotifie\


::Gestion du renommage et raccourci
set CheminSourcePart1=%~dp001_Usager
set CheminSourcePart3=R2 Accompagner\06 - Accompagnement pluridisciplinaire\07- Suivi d'activité

set FichierATraiter=Outil suivi activité 2018
set Extension=.xlsm

set DestinationRaccourci=%~dp0\03_Raccourcis

::NonNotifieVersExistant

::Journaux
set RobocopyLOG=%~dp0\100_Journaux\robocopy.log
Set Journalisation="%~dp0\100_Journaux\Journalisation.txt"
set ListeNonNotifie=%~dp0100_Journaux\ListeNonNotifie.txt
set Mode=
set Mode=Prod
goto :MENU

::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


::-------------------------------------------------------------------------------------GESTION DU MENU-----------------------------------------------------------------------------------------------


:MENU
::Création du menu
::Affichage Utilisateur
cls
echo MENU
echo.

echo ----------------------------------------------------------
echo 1: Ajout USAGER NOTIFIE
echo ----------------------------------------------------------
echo 2: Ajout USAGER NON NOTIFIE
echo ----------------------------------------------------------
echo 3: Bascule Usager NON NOTIFIE vers USAGER NOTIFIE
echo ----------------------------------------------------------
echo 4:QUITTER
echo ----------------------------------------------------------



::Variables
set choice=
set /p choice=Votre choix?
set Validation=
::Action
if %choice%==1 goto UsagerNotifie
if %choice%==2 goto UsagerNONNotifie
if %choice%==3 goto NonNotifieVersExistant
if %choice%==4 goto quitter
goto :MENU

::-------------------------------------------------------------------------------------Choix 1 : Ajout USAGER NOTIFIE-----------------------------------------------------------------------------------------------
:UsagerNotifie
::Affichage Utilisateur
@echo off
cls
echo Creation de l arborescence pour un nouvel usager du CSES PEYRELONGUE AMBARES


:: Les Variables
set tache=Creation UsagerNotifie
echo ----- Debut de La tache %tache% pour -- %NomUsager% realisee par -- %mdp% a %time%>>%Journalisation%
set /p NomUsager= Nom du dossier usager a creer :
set CheminSource=%CheminSourcePart1%\%NomUsager%\%CheminSourcePart3%\

::Verification si dossier existe déjà
if exist "%DossierDeProdNotifie%%NomUsager%" goto :alerte

::Action
chcp 850 > nul
robocopy "%ModeleUsagerNotifie%" "%DossierDeProdNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
chcp 65001 > nul

ren "%CheminSource%%FichierATraiter%%Extension%" "%FichierATraiter% - "%NomUsager%%Extension%"

::Creation Raccourci
nircmd.exe shortcut "%CheminSource%%FichierATraiter% - %NomUsager%%Extension%" "%DestinationRaccourci%" "%FichierATraiter% - %NomUsager%" "min"

goto :fin
::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::-------------------------------------------------------------------------------------Choix 2 : Ajout USAGER NON NOTIFIE-----------------------------------------------------------------------------------------------
:UsagerNONNotifie
::Affichage Utilisateur
@echo off
cls
echo Creation de l arborescence pour un nouvel usager NON NOTIFIE du CSES PEYRELONGUE AMBARES

:: Les Variables
set tache=Creation UsagerNONNotifie
echo ----- Debut de La tache %tache% pour -- %NomUsager% realisee par -- %mdp% a %time%>>%Journalisation%
set /p NomUsager= Nom du dossier usager a creer :

::Verification si dossier existe déjà
if exist "%DossierDeProdNonNotifie%%NomUsager%" goto :alerte

::Action
chcp 850 > nul
robocopy "%ModeleUsagerNonNotifie%" "%DossierDeProdNonNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
chcp 65001 > nul


goto :FIN

::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::-------------------------------------------------------------------------------------Choix 3 : Bascule Usager NON NOTIFIE vers USAGER NOTIFIE-------------------------------------------------------------------------
:NonNotifieVersExistant

::Affichage Utilisateur
@echo off
cls
echo TRANSFERT usager NON NOTIFIE VERS dossier des NOTIFIES

:: Les Variables
set tache="Creation NonNotifieVersExistant"
echo ----- Debut de La tache %tache% pour -- %NomUsager% realisee par -- %mdp% a %time%>>%Journalisation%

chcp 1252 >nul

::Creation liste usager
echo %ListeNonNotifie%>>%Journalisation%
dir "%DossierDeProdNonNotifie%"/B /AD >"%ListeNonNotifie%"

::Affichage du menu numéroté
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . "%ListeNonNotifie%"') do echo %%i %%j

::sélection de l'usager à traiter
set /p NumLigne=saisir le numero de l'usager concerne:
call :getline "%ListeNonNotifie%" %NumLigne%

goto :action

:getline
<%1 (for /l %%A in (1 1 %~2) do (set "NomUsager=" & set /p "NomUsager="))



::Bascule du dossier usager NON Notifié vers dossier usager EXISTANT
::Affichage Utilisateur
@echo off
cls
echo l usager %NomUsager% va etre integrer aux usagers notifies
echo %ModeleUsagerNonNotifie%%NomUsager% vers %DossierDeProdNotifie%%NomUsager%
echo.
echo.

if exist "%DossierDeProdNotifie%%NomUsager%\R0 Avant Notification" goto :alerte


:copie
robocopy "%DossierDeProdNonNotifie%%NomUsager%" "%DossierDeProdNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"

if exist "%DossierDeProdNotifie%%NomUsager%\R1 Accueillir" goto :CleanNonNotifie

:FinDeNotifie

::Variables
set CheminSource=%CheminSourcePart1%\%NomUsager%\%CheminSourcePart3%\

::Action
chcp 850 > nul
robocopy "%ModeleUsagerNotifie%" "%DossierDeProdNotifie%%NomUsager%" /E /sec /R:1 /W:1 /TEE /LOG+:"%RobocopyLOG%"
chcp 65001 > nul



ren "%CheminSource%%FichierATraiter%%Extension%" "%FichierATraiter% - "%NomUsager%%Extension%"

::Creation Raccourci
nircmd.exe shortcut "%CheminSource%%FichierATraiter% - %NomUsager%%Extension%" "%DestinationRaccourci%" "%FichierATraiter% - %NomUsager%" "min"


goto :CleanNonNotifie




:CleanNonNotifie
::Supression du dossier Non Notifié une fois le transfert terminé
echo Suppression de l usager du dossier non notifié
rmdir /s /q "%DossierDeProdNonNotifie%%NomUsager%"

goto :fin
chcp 65001 > nul






::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

::-------------------------------------------------------------------------------------GESTION DES ALERTES-------------------------------------------------------------------------
:Alerte
cls
set tache=Utilisateur deja existant
echo ALERTE l'utilisateur %NomUsager% EXISTE DEJA!!!!!
echo ALERTE : %mdp% %Mode% %tache% %NomUsager% %line% %time% >>%Journalisation%
pause

goto :fin
::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



::-------------------------------------------------------------------------------------SORTIE ET JOURNALISATION-------------------------------------------------------------------------
:Fin
cls
echo Votre tache de %tache% pour l'USAGER : %NomUsager% a bien ete realisee
echo ----- Fin de La tache %tache% pour -- %NomUsager% realisee par -- %mdp% a %time%>>%Journalisation%
echo.>>%Journalisation%
echo.>>%Journalisation%
echo ------------------------------------------------------------------------------------------------------->>%Journalisation%
echo merci

::RAPPORT des Variables
echo %time%>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt
echo variable NomUsager : %NomUsager%>>RapportFinal.txt

echo USAGER NOTIFIE>>RapportFinal.txt
echo Modele Usager Notifie : %ModeleUsagerNotifie%>>RapportFinal.txt
echo Dossier De Prod Notifie : %DossierDeProdNotifie%>>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt

echo USAGER NON NOTIFIE>>RapportFinal.txt
echo Modele Usager NonNotifie : %ModeleUsagerNonNotifie%>>RapportFinal.txt
echo Dossier De Prod NonNotifie : %DossierDeProdNonNotifie%>>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt

echo Gestion du renommage et raccourci>>RapportFinal.txt
echo CheminSourcePart1 : %CheminSourcePart1%>>RapportFinal.txt
echo CheminSourcePart3 : %CheminSourcePart3%>>RapportFinal.txt

echo FichierATraiter : %FichierATraiter%>>RapportFinal.txt%
echo Extension : %Extension%>>RapportFinal.txt

echo DestinationRaccourci : %DestinationRaccourci%>>RapportFinal.txt
echo.>>RapportFinal.txt
echo.>>RapportFinal.txt

Echo Journaux
echo RobocopyLOG : %RobocopyLOG%>>RapportFinal.txt
echo Journalisation : %Journalisation%>>RapportFinal.txt
echo Liste NonNotifie : %ListeNonNotifie%>>RapportFinal.txt


echo rmdir /s /q "%DossierDeProdNonNotifie%%NomUsager%" >>RapportFinal.txt

set tache=
set NomUsager=

:bouclage
cls
echo Choix du mode VIRTUEL ou REEL
echo.
echo -------------------------------------------
echo Taper 1 Pour réaliser une nouvelle opération
echo -------------------------------------------
echo Taper q pour quitter
echo -------------------------------------------
echo.
echo.
::Variables

set choice=
set /p choice=Votre choix?

::Action
if %choice%==1 goto :MENU
if %choice%==q goto quitter
goto :bouclage


::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
:quitter
cls
echo taches terminees
pause exit

0
yaphilde Messages postés 35 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 25 octobre 2022 2
19 déc. 2018 à 11:30
Salut Barnabe,
Merci de ta réactivité et de la prise en compte de mon probleme.
J'ai testé avec tes modifs.

J'ai exactement le même comportement. Tout roule en mode normal, et ca par en live en mode admin.
Si tu as d'autres idées je suis preneur car la je sèche.

Merci d'avance
0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 919 > yaphilde Messages postés 35 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 25 octobre 2022
19 déc. 2018 à 21:21
Non je n'ai pas d'autres idées, peut-être un problème de permission (même s'il y a peu de chance étant donné qu'il s'agit de l'admin du domaine).
0