在 Windows 10 cmd.exe 下,该命令del *.tmp可能会静默删除project.tmpl.
是否有一些选项、解决方法、注册表项或仪式牺牲可以防止这种情况发生?
令人难以置信的是:在我的机器上,C: 驱动器在 2020 年由 Windows 10 安装程序格式化:
(其中法语错误消息表示未找到文件)。
我试图删除所有以第一个结尾的文件,但由于某种原因,它删除了文件夹中的所有文件。
我正在使用的命令是
DEL *1.*
Run Code Online (Sandbox Code Playgroud)
当我使用像这样的字母时它会起作用
DEL *e.*
Run Code Online (Sandbox Code Playgroud)
但是当我使用一个数字时,一切都被删除了。
很长一段时间以来,我一直对 cmd.exe 的奇怪行为感到恼火(至少在 WinXP 和 Windows7 中)。命令 likedel *.txt也将删除*.txt1文件('.txt' 之后的任意数量的字符都可以)。这是一个众所周知的错误还是什么?
在 Windows 7 上,我有一个包含以下四个文件的目录:
由于文件有超过 3 个字符作为文件扩展名,通配符 * 的行为似乎很奇怪:
dir *.txt
10/13/2014 04:14 PM 6 xxx.txt
10/13/2014 04:17 PM 6 xxx2.txt
10/13/2014 04:17 PM 6 xxx2.txt2
10/13/2014 04:14 PM 6 xxx.txt2
4 File(s) 24 bytes
0 Dir(s) 6,660,980,736 bytes free
Run Code Online (Sandbox Code Playgroud)
我希望只看到两个带有 txt 扩展名的文件,而不是带有 txt2 的文件(就像在 Linux 机器上一样)。MS-DOS 是否忽略将文件扩展名截断为 3 个字符,还是在末尾自动添加另一个通配符?如果我只想删除带有 txt 扩展名的文件而不是带有 txt2 的文件,我应该使用哪个命令?谢谢
当我使用copy *.txt somefolder\系统时,似乎也复制了所有*.txt~文件,这不是我想要的。可以看到类似的相同效果dir:
C:\Users\Paul\Documents\Programs\Proffy>dir *.txt
Volume in drive C is Vista
Volume Serial Number is EC23-AD6B
Directory of C:\Users\Paul\Documents\Programs\Proffy
29/11/2008 13:54 35,821 COPYING.txt
31/10/2009 21:54 1,644 INSTRUCTIONS.txt
06/06/2009 15:57 1,393 INSTRUCTIONS.txt~
04/01/2009 11:59 116 Notes.txt
19/04/2009 16:53 134 README.txt
04/01/2009 12:42 132 README.txt~
31/10/2009 21:30 197 TODO.txt
31/10/2009 19:10 414 TODO.txt~
8 File(s) 39,851 bytes
0 Dir(s) 41,938,862,080 bytes free
C:\Users\Paul\Documents\Programs\Proffy>
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得dir并copy只对以 结尾.txt和 不结尾的文件进行操作.txt~?
我尝试遵循此处的建议: 需要删除 Windows 7 驱动器上具有一个扩展名的所有文件
但是,如果我想删除具有特定扩展名的特定文件夹中的所有文件,这是行不通的。
我有一个文件夹*.ASP和*.ASPX文件,我需要删除所有*.ASP文件但保留 ASPX 页面。
删除文件后,如果文件夹为空,我还需要删除该文件夹。
如何轻松删除所有 ASP 页面,包括空文件夹?命令提示符没有问题。
编辑:这是 PowerShell 中的技巧:
Get-ChildItem -path . -recurse -include *.asp |
Where-Object {-not $_.PSIsContainer} |
Remove-Item -Verbose
Run Code Online (Sandbox Code Playgroud) 文件夹中的文件:
a.j
ab.jp
abc.jpg
abcd.jpeg
Run Code Online (Sandbox Code Playgroud)
dir 命令结果:
Command Result (Files shown)
---------- --------------------
dir ?.* a.j
dir ??.* a.j, ab.jp
dir ???.* a.j, ab.jp, abc.jpg
dir ????.* a.j, ab.jp, abc.jpg, abcd.jpeg
Run Code Online (Sandbox Code Playgroud)
所以我们可以看到 single?表示“0 或 1 个字母”。
现在更多的dir命令结果:
Command Result (Files shown)
---------- --------------------
dir *.? a.j
dir *.?? a.j, ab.jp
dir *.??? a.j, ab.jp, abc.jpg, abcd.jpeg --> What is this?!
dir *.???? a.j, ab.jp, abc.jpg, abcd.jpeg
Run Code Online (Sandbox Code Playgroud)
在第三个命令中为什么???显示jpeg?你可以解释吗?这是 cmd 中的错误吗?
我搜索了以下内容,它给了我确切的输出(文件夹名称已更改)
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)