Je dois utiliser des noms de chemin raccourcis pour une application que j'utilise. Par exemple, j'ai besoin C:\PROGRA~1\
par opposition à C:\Program Files
. Le programme ne peut pas gérer les espaces et n'accepte pas les chemins cités (par exemple "C:\Program Files"
).
Si cela aide, j'utilise Windows 7. Je peux avoir accès à n'importe quelle version depuis XP, si nécessaire.
/s
commutateur fait la récursion de sous-dossiersCréez un fichier bat dans un répertoire pratique, puis copiez-collez le chemin court à partir de ce chemin.
Vous pouvez simplement exécuter
command.com
et continuer à exécuter descd
commandes dans votre répertoire actuel également.Dans les scripts de lot Windows,
%~s1
développe les paramètres de chemin d'accès en noms abrégés . Créez ce fichier batch:J'ai appelé le mien
shortNamePath.cmd
et l'appelle comme ça:Voici une version qui utilise le répertoire en cours si aucun paramètre n'a été fourni:
Appelé sans paramètres:
Utiliser
SET
et une variable nomméeL'invite de commande Windows contient des conventions relatives à la gestion des variables dont la valeur est un espace difficile à comprendre et à comprendre, notamment si vous avez un arrière-plan Unix. Tu peux faire
( sans guillemets ), ou
(notez le placement non intuitif des guillemets); ensuite
la source
Le "nom abrégé" correspond en réalité à l'ancienne convention de nommage DOS 8.3. Tous les répertoires seront donc composés des 6 premières lettres suivies en
~1
supposant qu'un seul nom correspond, par exemple:voici la seule exception
la source
Program Files
etProgram Files (x86)
estPROGRA~1
et qui on estPROGRA~2
. La réponse de Paul résout ce problème....~4
), cela a commencé avec ce qui ressemble à du hachage, par exempleABxxxx~1
où x était hexadécimal - ce qui n'est pas très facile à lire.ABCDEFGH-CAT
, ça prend un nom courtABCDEF~1
. Si je crée alorsABCDEFGH-DOG
, ça prend un nom courtABCDEF~2
. Si je supprime puisABCDEFGH-CAT
,ABCDEFGH-DOG
, a encore le nom courtABCDEF~2
. Il n'y a aucun moyen de le savoir en regardant les noms longs.~1
. Consultez la règle utilisée par Windows pour générer des noms abrégés . Et vous pouvez également définir le nom abrégé manuellement avecfsutil
, de sorte que les deux noms peuvent n'avoir aucune relation. Laisse les liens durs ou souplesVoici un one liner :
Ventilation :
cmd /c
- Démarre une nouvelle instance de l'interpréteur de commandes Windows, exécute la commande spécifiée par string puis se termine.for %%parameter in (set) do
commande - Effectuer une commande plusieurs fois de manière conditionnelle.echo
- Afficher les messages à l'écran.@
Le symbole est identique à celuiECHO OFF
appliqué à la ligne actuelle uniquement.%~s
- Le chemin développé ne contient que des noms abrégés.Sources :
la source
cmd /c
? Si vous êtes dans une fenêtre d'invite de commande, vous pouvez simplement taper lafor %A in ("C:\Program Files") do @echo %~sA
commande. Si vous la tapez dans la boîte de dialogue "Exécuter", le résultat disparaît avant que vous puissiez le lire.cmd /c
lors de l' exécution decmd
; vous en avez besoin de PowerShell , mais vous devez également'...'
-closer les jetons après/c
:cmd /c 'for %f in ("C:\Program Files") do @echo %~sf'
Semblable à la réponse d' Ivan Schwartz , vous pouvez remplacer "C: \ Program Files" par
%cd%
pour obtenir le répertoire actuel:la source
J'ai trouvé un moyen très pratique de résoudre le chemin court du répertoire actuel (ou autre) si vous avez installé Powershell.
Il suffit d'ouvrir Powershell dans le répertoire actuel
dans cmd windows type powershell
Si vous avez un dossier ouvert dans l'interface graphique, vous pouvez taper cmd.exe ou powershell.exe directement dans la barre d'adresse du dossier.
Puis donnez la commande
Origine de l'information: [ https://gallery.technet.microsoft.com/scriptcenter/Get-ShortName-90a49303]
la source
Alternativement, vous pouvez utiliser ce petit outil génial appelé PathCopyCopy
En quelques clics, vous pouvez obtenir le chemin d'accès long et court de n'importe quel dossier à partir du menu contextuel, par exemple:
Terminé. Il sera copié dans votre presse-papiers.
Aperçu
la source
J'ai installé des modules de nœud en fonctionnant
npm install
sur un passe-partout. En essayant de supprimer ces dossiers, Windows ne nous permet pas de les supprimer car le chemin est trop long pour pouvoir être traité.Après quelques recherches superficielles, j'ai pensé que ce serait bien mon propre fragment de code de renommer les dossiers de la racine à la feuille afin qu'il puisse également renvoyer toute exception de violation pour cette tentative.
Ça marche pour moi. Voici le code du projet C #.
la source
C’est le moyen le plus simple que j’ai utilisé lorsqu’il s’agit de fichiers contenant des espaces. Il est également accessible à partir de l’explorateur de fichiers et dispose des mêmes privilèges d’accès.
la source
Il suffit de remplacer les espaces avec
C'est ainsi que les choses sont "traduites" et que les espaces entrent dans% 20.
Si vous avez vraiment besoin de beaucoup, ouvrez simplement votre navigateur et tapez quelque chose comme:
la source
if exist C:\Program%20Files\ (echo exists)