Dans une fenêtre DOS, comment puis-je obtenir le nom DOS complet / le nom court du répertoire dans lequel je me trouve?
Par exemple, si je suis dans le répertoire C:\Program Files\Java\jdk1.6.0_22
, je veux afficher son nom court C:\PROGRA~1\Java\JDK16~1.0_2
.
Je sais que courir dir /x
me donnera les noms courts des fichiers / répertoires dans le répertoire courant, mais je n'ai pas été en mesure de trouver un moyen d'afficher le chemin complet du répertoire courant au format de nom court. Je dois parcourir le chemin depuis la racine, répertoire par répertoire, en cours d'exécution dir /x
dans chacun.
Je suis sûr qu'il existe un moyen plus simple de le faire?
windows
command-line
CodeClimber
la source
la source
Réponses:
Un moyen plus simple?
la source
for /d %I in (*) do @echo %~sI
chaque segment de chemin est court, excellent. Le problème n'était pas directement avec les noms longs, ni même avec les espaces, mais le pire, c'est quand des caractères internationaux sont présents, ce qui fait simplement passer mon script en prenant cette liste de répertoires comme entrée.%
signes:for %%I in ("C:\folder with spaces") do echo %%~sI
Vous pouvez également saisir ce qui suit dans une fenêtre CMD:
Où
<ParentDirectory>
est remplacé par le chemin complet du répertoire contenant l'élément dont vous souhaitez le nom.Bien que la sortie ne soit pas aussi simple que la réponse de Timbo , elle listera tous les éléments du répertoire spécifié avec le nom réel et (s'il est différent) le nom court.
Si vous utilisez,
for %I in (.) do echo %~sI
vous pouvez remplacer le.
par le chemin complet du fichier / dossier pour obtenir le nom abrégé de ce fichier / dossier (sinon le nom abrégé du dossier actuel est renvoyé).Testé sur Windows 7 x64.
la source
Dans les scripts de commandes Windows,
%~s1
étend les paramètres de chemin aux noms courts . Créez ce fichier de commandes:J'ai appelé le mien
shortNamePath.cmd
et l'appelle comme ça:Edit: voici une version qui utilise le répertoire courant si aucun paramètre n'a été fourni:
Appelé sans paramètres:
la source
%0
c'est le chemin du script batch).Être programmeur a fait ce projet Winform de 10 minutes. Cela m'a été utile. Faire de cette application un menu contextuel pour l'explorateur de fichiers permettrait d'économiser plus de clics.
Form1.cs:
Form1.Designer.cs:
la source
exécutez
cmd.exe
et procédez comme suit:Ensuite, command.com apparaîtra et n'affichera que les chemins courts.
la source
la source
La réponse de Kimbo est parfaite pour les fichiers normaux.
Pour les noms de fichiers MsDos sur HardLinks
Les liens
mklink /H <link> <target>
physiques créés avec n'auront pas de nom de fichier court MsDos.Dans le cas où vous
dir /X
et vous découvrez ce nom court manquant, vous devriez vous attendre à ce qui suit:Fichier normal
Dans ce cas
J'ai ce que j'attendais
Fichier de lien physique
Dans ce cas
J'ai le chemin MsDos normal mais le nom de fichier normal.
la source
similaire à cette réponse mais utilise une sous-routine
la source
Une réponse plus directe est de corriger le bogue.
% SPARK_HOME% \ bin \ spark-class2.cmd; Ligne 54
Broken: set RUNNER="%JAVA_HOME%\bin\java"
Windows Style: set "RUNNER=%JAVA_HOME%\bin\java"
Sinon, le RUNNER se termine par des guillemets et la commande
"%RUNNER%" -Xmx128m ...
se termine par des guillemets. Le résultat est que le programme et le fichier sont traités comme des paramètres séparés.la source
Inspiré par la réponse du Dr Scripto
la source
si via un fichier batch, utilisez:
vous pouvez utiliser la commande echo pour vérifier:
la source
utilisez ce lien, il convertira automatiquement tout chemin que vous donnez dans n'importe quel format https://pathconverter-pp.azurewebsites.net
la source