Récupérer entrée utilisateur et chercher fichier dans sous-dossiers
Bonjour,
Je cherche à faire un petit script pour automatiser l’algorithme suivant :
- Récupérer une entrée utilisateur de format +12+345 (les + étant interchangeables avec des - puisqu’il s’agit de coordonnées latitude/longitude).
- Chercher ces coordonnées entrées dans deux dossiers spécifiques et tous leurs sous-dossiers, le format de fichier étant .dsf et les deux sous-dossiers commençant par zzz_
- Si elles n’existent pas dans ces sous-dossiers, aller les chercher dans un troisième dossier et tous les sous-dossiers de celui-ci.
- Une fois trouvées, copier le fichier correspondant dans un autre dossier pour y être traité avec la suite du script qui existe déjà et qui fonctionne.
Voilà où j’en suis, sachant que ce code ne fonctionne qu’à partir de :loop2.
Après l’entrée des coordonnées, la console renvoie : "Le chemin d’accès spécifié est introuvable" et "else n’est pas reconnu comme une commande interne".
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| @echo off
set fileC=
set fileG=
:loop1
set /p tile="Enter coordinates: "
for /f "delims=" %%f in ('dir /b/s "D:\X Plane 11\Custom Scenery"\zzz_*.dsf') do (
if %%f == %tile%.dsf do (
xcopy %%f D:\XPtools\tools)
else for /f "delims=" %%f in ('dir /b/s "D:\X Plane 11\Global Scenery\X-Plane 11 Global Scenery"') do (
if %fileG%.dsf == %tile%.dsf do (
xcopy %%f D:\XPtools\tools)
)
pause
set /p choice="Find another tile (Y/N)?"
if choice==Y (goto :loop1) else goto :follow
:follow
rem archive renaming
ren *.dsf *.7z
rem archive extraction
7z e *.7z
rem archive deletion
del *.7z
:loop2
if exist *.dsf (goto :process) else goto :end
:process
rem gets filename
for %%a in (*.dsf) do set fileName=%%~na
rem send to DSFTool
start "DSFTool" /B /wait D:\XPTools\tools\DSFTool.exe --dsf2text "%fileName%.dsf" "%fileName%.txt"
rem cleanup
del %fileName%.dsf *.txt *txt.sea_level.raw
rem move files to the right place
move /Y D:\XPTools\tools\*.txt.elevation.raw D:\XPTools\Processed\
goto :loop2
:end
echo Done. |
Merci pour votre aide.