[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 有没有把带空格长文件名路径转换为win可识别短路径的工具?

本帖最后由 ednykissyou 于 2024-6-18 15:08 编辑

比如我想把这种C:\Program Files\Adobe\Adobe InDesign 2024\Resources\CEP\CEPHtmlEngine
转换为短路径

我这个file://C:\Progra~1\Adobe\Adobe~2\Resources\CEP\CEPHtmlEngine
为何不对呢,Adobe这个目录下就有三个长文件夹:
Adobe Creative Cloud Experience
Adobe InDesign 2024
Adobe Media Encoder CS6

有啥意义?短文件中的名字又不是固定的

TOP

回复 18# ednykissyou


建议以后不要再说“不行”、“一闪而过”、“没有反应”之类的话,因为这对于想要给你进一步帮助的人来说没有任何意义。
希望大家都能学会的一个知识点是:如何查看代码的报错信息。

请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 18# ednykissyou


    收到,祝好运。
测试代码之前请做好备份

TOP

回复 13# ShowCode
无反应,没动静啊

TOP

又发梦冲了,前两天我试Versio~1.0-J是可行的。
今天我试
C:\Users\dublove\AppData\Roaming\Adobe\InDesign\Version 19.0-J\zh_CN\Workspaces
file://C:\Users\dublove\AppData\Roaming\Adobe\InDesign\Versio~1.0-J
竟然又打不开了
下边这一步都可以打开的
file://C:\Users\dublove\AppData\Roaming\Adobe\InDesign\

TOP

回复 13# ShowCode


没有什么用啊?
也没生成个记事本,也没个提示的

TOP

回复 11# buyiyang

编译器错误,无效字符

TOP

本帖最后由 aloha20200628 于 2024-6-23 10:28 编辑


系统内置命令 fsutil 可用于管控 dos8.3 命名操作,见如下命令行的当前系统状态查询
其中状态值2,3似乎等效,即只允许系统盘(如c:)8.3命名有效,改变状态值0/1的结果须重建文件目录结构之后方可生效...详细用法可网搜自查
老东家自报8.3命名管理已是dos远古遗产存在诸多纰漏且若与windows_x32/x64位系统命名管理并存会折损文件系统效率...仅在不得已时用之

C:\temp>fsutil 8dot3name

---- 支持的 8DOT3NAME 命令 ----
query   在系统上查询当前设置的短名称行为
scan    扫描受影响的注册表条目
set     更改控制系统上短名称行为的设置
strip   删除目录中所有文件的短名称

C:\temp>fsutil 8dot3name query
注册表状态为: 2 (按卷设置 - 默认值)。

C:\temp>fsutil 8dot3name query
注册表状态为: 1 (禁用所有卷上的 8dot3 名称创建)。

C:\temp>fsutil 8dot3name query
注册表状态为: 0 (启用所有卷上的 8dot3 名称创建)。

C:\temp>fsutil 8dot3name query
注册表状态为: 3 (在所有非系统卷上禁用 8dot3 名称创建)。

TOP

回复 5# ednykissyou


放在当前路径.bat
  1. @echo off
  2. for %%i in ("%~dp0") do (
  3.     set "ShortName=%%~si"
  4. )
  5. echo,%ShortName%
  6. pause
复制代码
测试代码之前请做好备份

TOP

for /?  里面:
%~sI        - 扩展的路径只含有短名

TOP

获取文件或文件夹的短路径
  1. @echo off
  2. set strPath='C:\Users\dub\AppData\Roaming\Adobe\InDesign\Version 19.0-J'
  3. powershell -c "$path=%strPath%;$a=New-Object -ComObject Scripting.FileSystemObject;if(Test-Path $path){if($a.FileExists($path)){$f=$a.GetFile($path)}else{$f=$a.GetFolder($path)};Write-Host $f.ShortPath}else{Write-Host '路径不存在'}"
  4. pause
复制代码
  1. '&cls&cscript -nologo -e:vbscript "%~f0" "C:\Users\dub\AppData\Roaming\Adobe\InDesign\Version 19.0-J"&pause&exit
  2. strPath = WScript.Arguments(0)
  3. Set objFSO = CreateObject("Scripting.FileSystemObject")
  4. If objFSO.FileExists(strPath) Then
  5.     Set f = objFSO.GetFile(strPath)
  6.     WScript.Echo f.ShortPath
  7. ElseIf objFSO.FolderExists(strPath) Then
  8.     Set f = objFSO.GetFolder(strPath)
  9.     WScript.Echo f.ShortPath
  10. Else
  11.     WScript.Echo strPath & " 路径不存在"
  12. End If
复制代码

TOP

回复 6# ednykissyou


    VERSIO~1.0-J
测试代码之前请做好备份

TOP

回复 6# ednykissyou


    file://C:\Users\dub\AppData\Roaming\Adobe\InDesign\Versio~1.0-J

有问题,可以用cmd下,用dir /x来检查一下系统的正确短路径

TOP

实在不行你可以逐个查看
比如
  1. @echo off
  2. cd /d c:\
  3. dir /x
复制代码
可以看到各长文件名对应的短文件名

QQ 20147578

TOP

返回列表