标题: [文件操作] 请教下没有短名称的畸形文件中的文件是怎样被执行的 [打印本页]
作者: smss 时间: 2024-5-31 11:28 标题: 请教下没有短名称的畸形文件中的文件是怎样被执行的
本帖最后由 smss 于 2024-6-3 06:42 编辑
把D:换为%tmp%便得不到短名称了 真是奇怪- @Echo off
- set a=smss..
- if not exist D:\%a%\ md D:\%a%\
- for /f "tokens=4 delims= " %%a in ('dir d:\ /x ^|findstr /i /c:"%a%"')do set b=%%a
- if not exist "D:\%b%\Notepad2.exe" copy "C:\Program Files\Notepad2\Notepad2.exe" "D:\%b%\"
- start "" "D:\%b%\Notepad2.exe"
- pause
复制代码
- @Echo off
- for /r %%i in (Notepad2.exe)do Echo %%i
- pause
复制代码
今天我换个思路发现更加不好了 每个文件夹下都查到Notepad2.exe 但打开都没有 难道是系统BUG
作者: buyiyang 时间: 2024-5-31 12:18
本帖最后由 buyiyang 于 2024-5-31 12:20 编辑
看你的%tmp%路径是否有空格。
作者: smss 时间: 2024-5-31 12:37
回复 2# buyiyang
dir d:\ /x压根不显示 %tmp%下文件短名称 短名称是空白的
作者: aloha20200628 时间: 2024-5-31 13:14
回复 3# smss
一楼代码第4行中
dir d:\ /x ^|findstr /i /c:"%a%"
改为
dir d:\ /x ^|findstr /i /c:"%a:~0,-2%"
变量b即可获取实值了...
作者: smss 时间: 2024-6-1 07:37
回复 2# buyiyang 没有空格
作者: buyiyang 时间: 2024-6-1 10:22
for 的问题看namejm的教程:for /r 的作用及用法
dir /x 的问题可能是文件系统导致,77七测试:
http://www.bathome.net/redirect.php?goto=findpost&pid=281313&ptid=69140
作者: smss 时间: 2024-6-1 10:58
回复 6# buyiyang
我这是diskgenius格式化的NTFS, Windows 11 Insider Preview 10.0.22635.3646 (ni_release) amd64系统
作者: Five66 时间: 2024-6-1 17:21
win7以上不是能直接访问???
作者: smss 时间: 2024-6-1 18:47
回复 8# Five66
畸形目录 带两个点 资源管理器就定位不到
作者: Five66 时间: 2024-6-1 19:32
回复 9# smss
win7能直接双击打开,也能资源管理器地址栏输入地址打开,cmd也能直接访问
作者: smss 时间: 2024-6-1 19:56
本帖最后由 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 上测试
作者: Five66 时间: 2024-6-2 00:24
回复 11# smss
start "" "d:\smss~1\" 打不开
应该能换成
explorer "d:\smss~1\"
start "" "%tmp%\smss~1\Notepad2.exe"打不开
或许是程序的本身不能在%tmp%目录下运行,试试换成其他程序或%tmp%下的正常路径看看
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |