J'ai un script qui compile les mappages source, mais la seule façon de le faire est de faire une copie du fichier map (.vmf) et de le nommer mapCompiler_copy . Je dois faire ceci puisque les programmes utilisés pour compiler des cartes doivent avoir un nom spécifique en identifiant le fichier de carte.Batch: Affectation du nom de variable du fichier pointé à l'origine en tant que caractère générique
Disons que je n'ai qu'un seul fichier .vmf à l'intérieur d'un dossier, permet de dire qu'il est:
C:\CompilerScript\myMap.vmf
Comment puis-je utiliser un script batch pour attribuer le nom « myMap » à une variable sans origine savoir le nom du mapfile? (puisque différentes personnes auraient leurs cartes nommées différemment).
set mapfolder=%1
set mapname=mapCompiler_copy.vmf
set mapname_bsp=mapCompiler_copy
copy /B %1\*.vmf %1\%mapname%
set map="%mapfolder%\%mapname%"
Voici comment le script fonctionne maintenant, dans lequel vous glissez-déposez un dossier sur le script et le script fait une copie du fichier de la carte et le nomme mapCompiler_copy.vmf, que je l'utilise plus tard dans la programme, par exemple:
call vbsp.exe -notjunc -leaktest -game "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Source\cstrike" %map%
Edit: pour être plus précis, je vais glisser-déposer un dossier dans le script, et le seul contenu de ce dossier est le fichier de la carte (.vmf). Je veux que le script puisse stocker le nom de la carte avec la seule information étant que l'extension est (.vmf), et il y a seulement un fichier de carte dans le dossier. En effet, différentes personnes qui compilent plusieurs cartes auront des noms différents pour leurs fichiers de carte
Cette solution fonctionne très bien, mais est-il possible de faire attribuer le même nom de carte à une variable avec .bsp à la fin? C'est pour après la compilation, j'ai besoin de le copier dans le dossier cstrike maps et aussi commencer le jeu avec cette carte, mais ne peut le faire avec le fichier .bsp pas le fichier .vmf? –
Voir mon édition - c'est ce que vous voulez dire? – aschipfl
Bien que cela fonctionne, chaque fois que j'utilise% FILE% pour les programmes de compilation, il pointe vers autre chose. Ai-je besoin d'encapsuler tout le programme et de mettre le _endlocal_ à la fin? –