Noms de chemin relatifs - Répertoires inconnus dans l'invite DOS?

1

Pour les chemins relatifs, je sais: ./ est de ce répertoire ../ est 1 répertoire up ../../ est 2 répertoires up etc

Est-il possible de continuer à monter jusqu'à atteindre un répertoire spécifié?

Fondamentalement, mon problème est qu'un fichier est compilé par deux outils différents et que les répertoires de travail respectifs se trouvent à des profondeurs de répertoires différentes. Donc, dépendant du flux, j'utilise la nécessité de définir la référence de fichier sur:

../../../my_library/referenced_file.txt ou ../../my_library/referenced_file.txt

Je voudrais remonter quel que soit le nombre de répertoires dont j'ai besoin jusqu'à atteindre "my_library"

Andy
la source
Vous pouvez utiliser un lot court, qui compare les dernières heures d'écriture ou de lecture des referenced_file.txtfichiers et définit le dossier actuel sur le plus "jeune".
Endoro

Réponses:

3

Il n'y a aucun moyen de spécifier "montez quel que soit le niveau my_libraryrequis pour trouver " dans un chemin, car le développement d'un tel chemin nécessiterait une récursion de plus en plus coûteuse. dans le cas habituel d’un chemin inexistant, par exemple une faute de frappe, il pourrait très bien aller jusqu’au répertoire racine, puis chercher dans tout le système de fichiers, et renvoyer "chemin non trouvé" pourrait prendre quelques minutes ou plusieurs heures (ou, si vous avez des montages de répertoires NFS ou Samba configurés, plus longtemps encore).

Vous devrez trouver une méthode pour définir le chemin en question en fonction du processus que vous exécutez.

Aaron Miller
la source
Cela ne vaut vraiment pas la peine avec un fichier BAT ou PowerShell.
Travis
Merci. J'imagine que simplement indiquer le chemin complet est la solution la plus simple alors - c'est ce que j'essayais initialement d'éviter, car différents projets ont chacun leur propre structure, etc.
Andy
Eh bien, si une méthode rapide et sale ne vous dérange pas, vous pouvez boucler un test d’existence de fichier, en ajoutant le préfixe «../» au chemin à chaque échec du test et en abandonnant après dix itérations ou peu importe le sens. dans votre environnement. Ce serait moche et affreux, surtout dans un fichier batch, mais cela fonctionnerait probablement.
Aaron Miller
Merci encore. Les idées simples fonctionnent bien! Je programme en VHDL et cache cette fonctionnalité dans une fonction est assez simple.
Andy
C'est suffisant! Si je vous ai aidé, je vous serais obligé de cliquer sur la coche que vous verrez sous les boutons de vote haut / bas à côté de ma réponse. Merci!
Aaron Miller