DIR / B产生了很好的唯一文件列表
DIR / X产生的详细列表(日期,时间,大小,LONGNAME,短名称)
但是,如果将二者结合起来(即DIR / B / X)/ x开关被忽略。 这种行为按照这个网页是由设计。
所以,如果你问只包含的文件的简短名字一个简单的列表,雷蒙德(微软)说,这是向天上的规则,把它给你。
一个人怎么能解决这个“设计”的问题?
提前谢谢了
备注:这是帮我实现的东西在解释这个问题。 五种好友发布对谁我很感谢的答案,但答案非让我得到我想要的东西。
DIR / B产生了很好的唯一文件列表
DIR / X产生的详细列表(日期,时间,大小,LONGNAME,短名称)
但是,如果将二者结合起来(即DIR / B / X)/ x开关被忽略。 这种行为按照这个网页是由设计。
所以,如果你问只包含的文件的简短名字一个简单的列表,雷蒙德(微软)说,这是向天上的规则,把它给你。
一个人怎么能解决这个“设计”的问题?
提前谢谢了
备注:这是帮我实现的东西在解释这个问题。 五种好友发布对谁我很感谢的答案,但答案非让我得到我想要的东西。
尝试这个:
for /f "usebackq delims=" %X in (`dir /b`) do @echo %~nsxX
或者,如果你想完全合格的路径名:
for /f "usebackq delims=" %X in (`dir /b`) do @echo %~fsX
欲了解更多信息,请参阅for
帮助:
for /?
需要注意的是,如果你在一个批处理文件中使用这些命令,你需要加倍的%
的迹象。 例如:
for /f "usebackq delims=" %%X in (`dir /b`) do @echo %%~nsxX
短DIR / X倾销到一个文本文件,并解析它的,我不知道到什么建议。 你必须运行不管它是你在代码做的能力吗?
这是一个更复杂的解决方案,但是使用Perl或其他脚本语言写的东西; 或者去整个生猪和C#编写一些代码。
我怀疑你会得到很多的同类,你在前面的问题得到的答案...
你可以写你自己的目录列表可执行文件。 它不会花费太多掀起在C#中的东西。 使用Directory.GetFiles()来检索目录列表,并通过每一个进入“GetShortPathName()” Win32函数。
这页有如何从C#调用GetShortPathName()一个体面的例子: http://csharparticles.blogspot.com/2005/07/long-and-short-file-name-conversion-in.html