A voir également:
- [BATCH] for dans un seul niveau de sous répertoire
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Fichier batch - Guide
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Mise a niveau windows 7 vers 10 - Accueil - Mise à jour
- Clé de mise à niveau windows 7 gratuit - Guide
6 réponses
Bonjour,
Essaie comme ça :
“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
Essaie comme ça :
for /f "tokens=*" %%A in ('dir /b /ad "%WORKSPACE%"') do (
for /f "tokens=*" %%G in ('dir /b /a-d "%%~dpnA\*.prj"') do (
"%COMPILO_PATH%\compile.exe" -release "%%~dpnxG"
)
)
“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
Bonjour Barnabe,
merci de votre réponse, j'ai effectivement essayé votre solution et on y est presque je pense.
En effet, le script trouve bien le sous dossier avec un *.prj cependant lorsqu'il exécute le *.prj dans le second for, il n'est pas au bon chemin.
Par exemple première boucle le script trouve un *.prj ici :
WORKSPACE\SousDossier1\toto.prj
cependant lorsqu'il essaie de l'exécuter, il envoie le chemin suivant :
WORKSPACE\toto.prj
Bonne journée,
merci de votre réponse, j'ai effectivement essayé votre solution et on y est presque je pense.
En effet, le script trouve bien le sous dossier avec un *.prj cependant lorsqu'il exécute le *.prj dans le second for, il n'est pas au bon chemin.
Par exemple première boucle le script trouve un *.prj ici :
WORKSPACE\SousDossier1\toto.prj
cependant lorsqu'il essaie de l'exécuter, il envoie le chemin suivant :
WORKSPACE\toto.prj
Bonne journée,
Ok j'ai corrigé le problème :
Bonne journée également.
@echo off
setlocal enableextensions
set WORKSPACE=D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020
cd /d %WORKSPACE%
for /f "tokens=*" %%A in ('dir /b /ad "%WORKSPACE%"') do (
for /f "tokens=*" %%G in ('2^>nul dir /b /a-d "%%~dpnA\*.prj"') do (
"%COMPILO_PATH%\compile.exe" -release "%%~dpG%%~nA\%%~nxG"
)
)
pause
Endlocal
exit
Bonne journée également.
la réponse au script :
architecture :
>for /F "tokens=*" %A in ('dir /b /ad "D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020"') do (for /F "tokens=*" %G in ('dir /b /a-d "%~dpnA\*.prj"') do ("C:\Program Files\National Instruments\CVI2012\compile.exe" -release "%~dpnxG" ) )
>(for /F "tokens=*" %G in ('dir /b /a-d "D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020\\*.prj"') do ("C:\Program Files\National Instruments\CVI2012\compile.exe" -release "%~dpnxG" ) )
Fichier introuvable
>(for /F "tokens=*" %G in ('dir /b /a-d "D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020\BurnIn_TRC9110_2C\*.prj"') do ("C:\Program Files\National Instruments\CVI2012\compile.exe" -release "%~dpnxG" ) )
>("C:\Program Files\National Instruments\CVI2012\compile.exe" -release "D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020\BurnIn_TRC9110.prj" )
Cannot open file 'D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020\BurnIn_TRC9110.prj'.
architecture :
TRC9110_Banc_OEDP_B0005_020 (racine du workspace)
=> BurnIn_TRC9110_2C (dossier)
=> BurnIn_TRC9110.prj (fichier)
Bonjour,
Je viens de l'essayer sur mon projet en question, ça a l'air de fonctionner ! je te remercie. je vais l'essayer sur d'autres projets de plus grande ampleur.
je ne comprend pas bien cependant les lignes suivantes :
"%%~dpG%%~nA\%%~nxG"
('2^>nul dir /b /a-d "%%~dpnA\*.prj"')
pourrait tu m'expliquer leur signification ?
Merci,
Je viens de l'essayer sur mon projet en question, ça a l'air de fonctionner ! je te remercie. je vais l'essayer sur d'autres projets de plus grande ampleur.
je ne comprend pas bien cependant les lignes suivantes :
"%%~dpG%%~nA\%%~nxG"
('2^>nul dir /b /a-d "%%~dpnA\*.prj"')
pourrait tu m'expliquer leur signification ?
Merci,
Dans l'aide la commande FOR (for /?) tu trouveras ceci :
Pour revenir au script :
Ca sera peut-être plus simple à comprendre comme ça :
%~I - étend %I en supprimant les guillemets (")
%~fI - étend %I en nom de chemin d’accès reconnu
%~dI - étend %I en lettre de lecteur uniquement
%~pI - étend %I en chemin d’accès uniquement
%~nI - étend %I en nom de fichier uniquement
%~xI - étend %I en extension de fichier uniquement
%~sI - chemin étendu contenant uniquement des noms
%~aI - étend %I en attributs du fichier
%~tI - étend %I en date/heure du fichier
%~zI - étend %I en taille du fichier
%~$PATH:I - parcourt les répertoires de la variable
d’environnement PATH et étend %I en nom du
premier fichier reconnu trouvé. Si le nom
variable d’environnement n’est pas défini
que le fichier n’est pas trouvé par la rec
alors ce modificateur étend en chaîne vide
Pour revenir au script :
%%~dpG = D:\Control.slave\workspace\TRC9110_Banc_OEDP_B0005_020
%%~nA = BurnIn_TRC9110_2C
%%~nxG = BurnIn_TRC9110.prj
Ca sera peut-être plus simple à comprendre comme ça :
d = drive (lecteur)
p = path (chemin)
n = nom
x = extension
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour tes précisions, je comprend un peu mieux !
Merci beaucoup de ton aide :)
concernant le "tokens=*" on précise que le séparateur est : * ?
Merci beaucoup de ton aide :)
concernant le "tokens=*" on précise que le séparateur est : * ?
tokens indique les parties que tu souhaites utiliser, quand tu découpes une chaîne de caractères avec FOR /F
Par exemple tu as un fichier texte qui contient une ou plusieurs lignes, par exemple : bonjour il fait beau aujourd'hui
Tu vas parcourir le fichier texte et traiter chaque ligne grâce à FOR /F :
Observe la différence avec la commande précédente :
Par exemple tu as un fichier texte qui contient une ou plusieurs lignes, par exemple : bonjour il fait beau aujourd'hui
Tu vas parcourir le fichier texte et traiter chaque ligne grâce à FOR /F :
for /f "tokens=1,2,3,4,5 delims= " %%A in (fichier.txt) do (echo %%A %%B %%C %%D %%E)
pause
Observe la différence avec la commande précédente :
for /f "tokens=2,3,4 delims= " %%A in (fichier.txt) do (echo %%A %%B %%C)
pause