J'écris un script de construction, et si le répertoire dans lequel l'utilisateur construit le script contient des espaces, tout s'écroule. Pour contourner cela, j'ai pensé à utiliser les noms de fichiers 8.3 de sorte que drive:\Documents and setttings\whatever
devient drive:\Docume~1\whatever
. Le répertoire courant peut être trouvé en interrogeant la variable d'environnement% CD%. Comment transformer% CD% en un chemin de fichier court?Comment transformer le répertoire de travail en un nom de fichier court 8.3 en utilisant batch?
Répondre
for %f in ("%cd%") do @echo %~sf
Edit: ne pas oublier d'utiliser %% si vous l'utilisez dans le fichier batch. comme celui-ci
for %%f in ("%cd%") do @echo %%~sf
Sur ma machine:
C:\Users\preet>cd "\Program Files"
C:\Program Files>for %f in ("%cd%") do @echo %~sf
C:\PROGRA~1
Autres options:
En outre, la substitution de variables des références a été améliorée. Vous pouvez maintenant utiliser la syntaxe optionnelle suivante:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path contains short names only
%~aI - expands %I to file attributes of file
%~tI - expands %I to date/time of file
%~zI - expands %I to size of file
%~$PATH:I - searches the directories listed in the PATH
environment variable and expands %I to the
fully qualified name of the first one found.
If the environment variable name is not
defined or the file is not found by the
search, then this modifier expands to the
empty string
The modifiers can be combined to get compound results:
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
%~fsI - expands %I to a full path name with short names only
%~dp$PATH:I - searches the directories listed in the PATH
environment variable for %I and expands to the
drive letter and path of the first one found.
%~ftzaI - expands %I to a DIR like output line
Mieux: utilisez des guillemets ("
) autour de tous vos chemins.
C'est difficile à expliquer, mais ce n'est pas une option. – Geo
Ne répond pas à la question de l'OP, n'explique pas pourquoi cela est mieux dans les situations où cela fonctionne, et ne fonctionne pas toujours. –
- 1. Comment transformer un nom UPN en nom de connexion?
- 2. Obtenir le répertoire d'un nom de fichier en Javascript
- 3. Comment implémenter quicksort en utilisant un fichier batch?
- 4. Ouverture de plusieurs documents PDF en utilisant le fichier batch
- 5. fichier de recherche dans le répertoire en utilisant modèle complexe
- 6. Existe-t-il un moyen de générer la version 8.3 ou «courte» (Windows) d'un nom de fichier en Java?
- 7. En Python, comment transformer une chaîne en un fichier?
- 8. Obtenir le nom de fichier en utilisant xsl
- 9. Comment créer un répertoire en utilisant StreamWriter?
- 10. Vim: comment convertir le nom de fichier en chemin?
- 11. Comment transformer le contenu d'un var en un chemin absolu?
- 12. Transformer Xml en utilisant Xslt
- 13. Rechercher un mot à l'intérieur du fichier .txt en utilisant le fichier batch
- 14. La meilleure façon de transformer un entier en un nom de mois en C#?
- 15. Comment transformer un programme python en un fichier .egg?
- 16. Comment renommer des fichiers existants en utilisant un fichier batch à des fins de sauvegarde?
- 17. Comment définir le style -webkit-transformer dynamiquement en utilisant JavaScript?
- 18. Comment transformer un polynôme en un autre système de coordonnées?
- 19. transfert de fichier jpg en utilisant un socket_stream en C
- 20. vimrc - répertoire de travail actuel
- 21. Convertir un tableau d'octets en un tableau court en C#
- 22. Recherche du nom de fichier du fichier batch en cours d'exécution
- 23. Django - comment transformer un fichier InMemoryUploadedFile en FieldFile d'un ImageField?
- 24. In Batch: Lit uniquement le nom de fichier d'une variable avec le chemin et le nom de fichier
- 25. Comment obtenir le répertoire de travail actuel dans IronRuby?
- 26. comment pouvons-nous utiliser un fichier batch en C++?
- 27. convertir django ForeignKey en un nom de répertoire utilisable
- 28. Ocaml: Définir le répertoire de travail actuel?
- 29. Comment obtenir l'équivalent de dirname() dans un fichier batch?
- 30. Comment modifier le nom de fichier sortant en utilisant une variable dans le lieur Visual C++?
cherchait cela moi-même - vous seriez surpris de savoir comment googler pour 'for' et commande rapide est. Échapper le% s à %% si dans un fichier batch. – Will
Je reçois ceci comme message d'erreur: cd ~ sf était inattendu pour le moment. – Geo
Bravo sera. Je n'oublie pas de faire ça. –