在我的 Windows XP 机器上,我在特定目录的命令提示符中键入dir。它开始列出一堆文件,然后暂停并显示File Not Found。
有谁知道为什么会发生这种情况以及如何解决它?
ls -l在 *nix(或dirWindows)上运行时是否可以更改显示列的顺序?
例如,我想查看修改日期,然后是名称,然后是其他字段(或者仅选择我想要的字段及其顺序。
如何在不使用cut和修剪不需要的字段的情况下完成此操作(因为这不能解决重新排序的问题)?
我只是想检查转储目录中是否有任何 ZIP 程序(如 PeaZip、NanoZip 等),但遇到了一个我以前只见过几次的奇怪问题。
我用下面的命令列表文件,其文件名包含zip(例如nanozip.zip,peazip2.rar,winzip-beta.exe等):
dir *zip*
Run Code Online (Sandbox Code Playgroud)
这列出了文件名包含的所有文件zip,但也列出了所有带有.zip扩展名(例如,foobar.zip)的文件。
然后我尝试了以下方法:
dir *zip*.*
Run Code Online (Sandbox Code Playgroud)
这给出了相同的结果。
有谁知道获得预期结果的方法?(我知道for 可能可以做到,但输出将不正确。)
我希望使用批处理文件,能够在位于一堆不同位置的一堆名为“错误”的文件夹中搜索和显示文件。
错误文件夹始终处于相同的文件夹深度,但它们之前的文件夹名称不同。
dir /A-d /b C:\Temp\*random_folder_name*\*random_folder_name*\error
Run Code Online (Sandbox Code Playgroud)
那么,我可以创建一行显示所有错误文件夹中的所有文件,“下面”的两个文件夹,在本例中为“C:\Temp”?还是我必须为每个错误文件夹添加一个目录行?
我需要将所有文本文件复制到一个名称为五个字符长的文件夹中。我知道这个命令是为了列出:
$ dir folder /B | findstr /R "^.....\.txt"
Run Code Online (Sandbox Code Playgroud)
但我想将上述命令列出的所有文件复制到不同的文件夹中。
我正在尝试.asp使用以下命令递归搜索目录树以查找所有文件:
dir *.asp /s
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这不仅会返回 asp 文件,还会返回 aspx 文件。
如何强制它忽略 aspx 文件?
dir只是想知道在命令提示符中运行命令(不带任何参数)时 Windows 如何确定文件顺序。
我知道您可以显式指定顺序,但只是好奇在不使用参数时排序如何工作。
原因是我有一个家庭立体声音响,可以从 USB 驱动器读取歌曲,并且它播放歌曲的顺序似乎与我dir在 Windows XP 命令提示符下运行命令时看到的顺序相同。如果我能弄清楚在普通dir命令中排序是如何工作的,我也许可以通过更改文件的某些属性来控制立体声上歌曲的播放顺序
在 Windows 命令提示符中,我可以使用dir命令输出目录中所有 PNG 文件的名称:
dir *.png /od /b > files.txt
Run Code Online (Sandbox Code Playgroud)
file 1.png
file 2.png
...
Run Code Online (Sandbox Code Playgroud)
但是,我正在使用的图像文件的文件名中包含空格,因此除非我用引号将它们的名称括起来,否则将无法与 ImageMagick 一起使用,如下所示:
"file 1.png"
"file 2.png"
...
Run Code Online (Sandbox Code Playgroud)
解决这个问题的最佳方法是什么?
是否有列出用引号括起来的文件名的命令?
或者我需要在创建 txt 文件后添加它们吗?
我正在使用以下命令列出文件,包括按名称排序的子目录中的文件。
dir /b/s/on
Run Code Online (Sandbox Code Playgroud)
文件在其给定目录中正确排序,但目录未排序。目录似乎按最后修改日期排序。
是否dir也可以对目录进行排序?
这是输出的一部分(混淆)的屏幕截图:

我搜索了以下内容,它给了我确切的输出(文件夹名称已更改)
C:\temp>dir *950*.pdf /s
Volume in drive C has no label.
Volume Serial Number is ABCDE
Directory of C:\temp\e\h\d\20100809
08/08/2010 10:54 PM 1,632,434 09_08_2010_004.pdf
08/08/2010 10:54 PM 1,368,895 09_08_2010_003.pdf
08/08/2010 10:54 PM 2,111,360 09_08_2010_005.pdf
3 File(s) 5,112,689 bytes
Run Code Online (Sandbox Code Playgroud)
我不明白为什么“ 950 ”与这三个文件匹配......!
编辑1
这次我实际上将它移到了 c:\temp\ 并且它匹配了其中之一!
C:\temp\20100809>dir *950*.pdf
Volume in drive C has no label.
Volume Serial Number is ABCDE
Directory of C:\temp\20100809
08/08/2010 10:54 PM 2,111,360 09_08_2010_005.pdf
Run Code Online (Sandbox Code Playgroud)
编辑2
@gravvity 的答案就在于此!
C:\temp\20100809>dir *950*.pdf /x
Volume in drive C has no label. …Run Code Online (Sandbox Code Playgroud) cd "$(mkdir -v "$(date -R)"|sed s+.`(.*)'.*)"
Run Code Online (Sandbox Code Playgroud)
这是为了创建一个名为$(date -R). 我可以简单地 cd $(date -R),但罪魁祸首是自上一个命令运行以来日期可能会更改 ( mkdir)。
所以我想解析它的输出以确定创建的目录的名称。如何更正代码?目前它显示>提示,表明缺少引用。
更改'为\'不会改变结果。如果您有更好的方法来做到这一点,请说出来。
如何在一个命令中在文件夹中创建多个子文件夹。
例如,我想创建:
/home/user/*create dir1*/*create dir2*/*create dir3*/
Run Code Online (Sandbox Code Playgroud)
前提是我没有 dir1。而且我不能使用 3 命令,也不能使用 shell 脚本。此创建必须在一个 shell 命令中。
$ mkdir /home/user/TEST1/TEST2/TEST3/
Run Code Online (Sandbox Code Playgroud)
不起作用,没有这样的文件错误。如果
$ mkdir /home/user/TEST1/
$ mkdir /home/user/TEST1/TEST2/
$ mkdir /home/user/TEST1/TEST2/TEST3/
Run Code Online (Sandbox Code Playgroud)
这项工作是,但我无法实施该解决方案。我只需要使用一个命令。
你能给我解答这个麻烦吗?
我想在单个文本文件中列出整个驱动器的 (Z:) 目录、子目录和文件,其中包含所有日期和文件大小。然后我可以在 Excel 中打开该文件。
我目前正在使用以下命令:
dir z:\ /s /o:gne >text.txt
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我获得类似于通常使用 tree 命令获得的输出,将所有文件和子目录堆叠在一个中而不单独列出?
如果我想删除时间等其他不必要的信息,我必须做什么或输入什么?