找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19292|回复: 11

[文件操作] 请教下没有短名称的畸形文件中的文件是怎样被执行的

[复制链接]
发表于 2024-5-31 11:28:30 | 显示全部楼层 |阅读模式
本帖最后由 smss 于 2024-6-3 06:42 编辑

把D:换为%tmp%便得不到短名称了 真是奇怪
  1. @Echo off
  2. set a=smss..
  3. if not exist D:\%a%\ md D:\%a%\
  4. for /f "tokens=4 delims= " %%a in ('dir d:\ /x ^|findstr /i /c:"%a%"')do set b=%%a
  5. if not exist "D:\%b%\Notepad2.exe" copy "C:\Program Files\Notepad2\Notepad2.exe" "D:\%b%"
  6. start "" "D:\%b%\Notepad2.exe"
  7. pause
复制代码
  1. @Echo off
  2. for /r %%i in (Notepad2.exe)do Echo %%i
  3. pause
复制代码
今天我换个思路发现更加不好了 每个文件夹下都查到Notepad2.exe 但打开都没有 难道是系统BUG
发表于 2024-5-31 12:18:43 | 显示全部楼层
本帖最后由 buyiyang 于 2024-5-31 12:20 编辑

看你的%tmp%路径是否有空格。
 楼主| 发表于 2024-5-31 12:37:24 | 显示全部楼层
回复 2# buyiyang
dir d:\ /x压根不显示 %tmp%下文件短名称  短名称是空白的
发表于 2024-5-31 13:14:46 | 显示全部楼层
回复 3# smss

一楼代码第4行中
   dir d:\ /x ^|findstr /i /c:"%a%"
改为
   dir d:\ /x ^|findstr /i /c:"%a:~0,-2%"
变量b即可获取实值了...
 楼主| 发表于 2024-6-1 07:37:20 | 显示全部楼层
回复 2# buyiyang 没有空格
发表于 2024-6-1 10:22:41 | 显示全部楼层
for 的问题看namejm的教程:for /r 的作用及用法
dir /x 的问题可能是文件系统导致,77七测试:
http://www.bathome.net/redirect.php?goto=findpost&pid=281313&ptid=69140
 楼主| 发表于 2024-6-1 10:58:50 | 显示全部楼层
回复 6# buyiyang

我这是diskgenius格式化的NTFS, Windows 11 Insider Preview 10.0.22635.3646 (ni_release) amd64系统
发表于 2024-6-1 17:21:57 | 显示全部楼层
win7以上不是能直接访问???
 楼主| 发表于 2024-6-1 18:47:04 | 显示全部楼层
回复 8# Five66
畸形目录 带两个点 资源管理器就定位不到
发表于 2024-6-1 19:32:44 | 显示全部楼层
回复 9# smss


        win7能直接双击打开,也能资源管理器地址栏输入地址打开,cmd也能直接访问
 楼主| 发表于 2024-6-1 19:56:35 | 显示全部楼层
本帖最后由 smss 于 2024-6-1 20:04 编辑

回复 10# Five66 已经多年不用win7 win11是打不开的 用命令执行也要短名称

start "" "d:\smss..\" 打不开
start "" "d:\smss~1\" 打不开
start "" "d:\smss~1\Notepad2.exe"可以
用同样方式在 %tmp%下生成
start "" "%tmp%\smss~1\Notepad2.exe"打不开
但可以复制 删除 真是奇怪

以上情况是在Win11 10.0.22635.3646 上测试
发表于 2024-6-2 00:24:47 | 显示全部楼层
回复 11# smss


start "" "d:\smss~1\" 打不开
应该能换成
explorer "d:\smss~1\"

start "" "%tmp%\smss~1\Notepad2.exe"打不开
或许是程序的本身不能在%tmp%目录下运行,试试换成其他程序或%tmp%下的正常路径看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 22:16 , Processed in 0.020872 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表