Cmd dir命令在本地驱动器和网络驱动器之间输出不同的结果
我只是在我的电脑上测试了一个cmd:Cmd dir命令在本地驱动器和网络驱动器之间输出不同的结果,cmd,Cmd,我只是在我的电脑上测试了一个cmd: C:\Users\user>dir D:\test\*.xls /b test - copy.xls test - copy.xlsx test.xls test.xlsx C:\Users\user>dir Y:\test\*.xls /b test - copy.xls test.xls 两个测试文件折叠是完全相同的。Dirve“D”是局部Dirve,Dirve“Y”是网络Dirve。我检查了我的机器版本和dirve“Y”的源机器,它们确
C:\Users\user>dir D:\test\*.xls /b
test - copy.xls
test - copy.xlsx
test.xls
test.xlsx
C:\Users\user>dir Y:\test\*.xls /b
test - copy.xls
test.xls
两个测试
文件折叠是完全相同的。Dirve“D”是局部Dirve,Dirve“Y”是网络Dirve。我检查了我的机器版本和dirve“Y”的源机器,它们确实不同。以下是我的问题:
-*.xlsx
以从我的程序中删除*.xlsx
结果提前谢谢。我可以这样排除
*.xlsx
:
dir D:\test\*.xls /b | findstr /v /i "\.xlsx$"
将排除偶数xls。*也包括:
dir D:\test\*.xls /b | findstr /v /i "\.xls.$"
显然,在本地计算机上启用了短8dot3文件名。 您可以看到,在运行dir/x时。。。 有不同的方法生成8dot3文件名。通常带有三个以上字母的分机会被截断,例如 .xlxs导致.XLS dir命令始终搜索长文件名和8dot3文件名 您有一些选项可以改变这种行为:
但是,当您想禁用所有8dot3文件名时,可以使用fsutil.exe删除旧文件中的8dot3文件名。我认为,这并不能真正回答问题。是的,它将排除
.xlsx
文件,但是如果存在.xlsm
文件,或者扩展名以.xls
开头但不以.xls
结尾的其他文件,会发生什么呢@Compo我还插入了另一个正则表达式,它将排除字符串末尾.xls之后的任何字符
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"Win95TruncatedExtensions"=dword:00000000