我需要为我正在使用的应用程序使用缩短的路径名。例如,我需要C:\PROGRA~1\而不是C:\Program Files. 该程序无法处理空格,也不会接受带引号的路径(例如"C:\Program Files")。
如果有帮助,我使用的是 Windows 7。如有必要,我可以访问自 XP 以来的任何版本。
Pau*_*aul 94
开始,然后cmd在运行框中键入。启动cmd,使用cd进入你感兴趣的文件夹:
cd \
Run Code Online (Sandbox Code Playgroud)
然后
dir /x
C:\>dir /x
13/10/2011 09:14 AM <DIR> DOCUME~1 Documents and Settings
13/10/2011 09:05 AM <DIR> PROGRA~1 Program Files
Run Code Online (Sandbox Code Playgroud)
小智 52
在某个方便的目录中创建一个 bat 文件,然后您可以从该路径复制+粘贴短路径。
您也可以运行command.com并继续cd对当前目录执行命令。
在 Windows 批处理脚本中,%~s1将路径参数扩展为短名称。创建此批处理文件:
@ECHO OFF
echo %~s1
Run Code Online (Sandbox Code Playgroud)
我打电话给我的shortNamePath.cmd,这样称呼它:
C:\> shortNamePath "c:\Program Files (x86)\Android\android-sdk"
c:\PROGRA~2\Android\ANDROI~1
Run Code Online (Sandbox Code Playgroud)
如果没有提供参数,这是一个使用当前目录的版本:
@ECHO OFF
if '%1'=='' (%0 .) else echo %~s1
Run Code Online (Sandbox Code Playgroud)
不带参数调用:
C:\Program Files (x86)\Android\android-sdk> shortNamePath
C:\PROGRA~2\Android\ANDROI~1
Run Code Online (Sandbox Code Playgroud)
使用SET和命名变量
Windows 命令提示符有一些处理值中带有空格的变量的约定,这些约定有点难以学习和理解,特别是如果您有 Unix 背景。你可以做
SET TESTPATH=c:\Program Files (x86)\Android\android-sdk
Run Code Online (Sandbox Code Playgroud)
(没有引号),或
SET "TESTPATH=c:\Program Files (x86)\Android\android-sdk"
Run Code Online (Sandbox Code Playgroud)
(注意引号的非直观位置);然后
CALL :testargs "%TESTPATH%"
?
:testargs
echo %~s1
goto :eof
Run Code Online (Sandbox Code Playgroud)
小智 22
这是一个单班轮:
cmd /c for %A in ("C:\Program Files") do @echo %~sA
Run Code Online (Sandbox Code Playgroud)
细分:
cmd /c - 启动 Windows 命令解释器的新实例,执行字符串指定的命令,然后终止for %%parameter in (set) do 命令 - 有条件地多次执行命令。echo- 在屏幕上显示消息。@符号与ECHO OFF仅应用于当前行的符号相同。%~s - 扩展路径仅包含短名称。来源:
小智 10
“短名称”实际上是旧的 DOS 8.3 命名约定,因此所有目录都将是前 6 个字母,然后~1假设只有一个名称匹配,例如:
C:\ABCDEF~1 - C:\ABCDEFG I AM DIRECTORY
C:\BCDEFG~1 - C:\BCDEFGHIJKL M Another Directory
Run Code Online (Sandbox Code Playgroud)
这是唯一的例外
C:\ABCDEF~1 - C:\ABCDEFG I AM DIRECTORY
C:\ABCDEF~2 - C:\ABCDEFGHI Directory as well
Run Code Online (Sandbox Code Playgroud)
小智 10
如果您安装了 Powershell,我发现解决当前目录(或其他任何东西)的短路径名的方法非常方便。
只需在当前目录中打开powershell
在 cmd windows 中输入 powershell
如果您在 gui 中打开了文件夹,则可以直接在文件夹的地址栏中键入 cmd.exe 或 powershell.exe。
然后下命令
(New-Object -ComObject Scripting.FileSystemObject).GetFolder(".").ShortPath
Run Code Online (Sandbox Code Playgroud)
信息来源:[ https://gallery.technet.microsoft.com/scriptcenter/Get-ShortName-90a49303]
小智 5
与 Ivan Schwartz 的回答类似,您可以将 "C:\Program Files" 替换%cd%为获取当前目录:
cmd /c for %A in ("%cd%") do @echo %~sA
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
249385 次 |
| 最近记录: |