【问题标题】:how do you delete all files NOT a flag in windows command prompt如何在 Windows 命令提示符中删除所有文件而不是标志
【发布时间】:2013-09-16 18:13:07
【问题描述】:

我正在尝试删除所有不是 .aspx 的项目,但我不知道该怎么做。现在我只是在经历所有事情

del /F *.html
del /F *.csproj
del /F *.ico

等等

有没有更简单的命令可以说:删除目录中的所有内容而不是文件夹或扩展名为 .aspx

我似乎无法在 Internet 上找到与我的问题相匹配的解决方案。我不知道 DEL 是否接受像 /^.*(^\.aspx)$ 这样的 Regex 或其他东西

bash 文件说:

chdir C:\Users\william.francis\Desktop\Deploy\tmp
for /f "delims=ÿ" %a in ('dir /b /a-d ^| find /v ".aspx"') do del /s /q /f %a
chdir ..

编辑: 想要一个关于否决票的原因,以便我可以解决它。我发现这个问题足够有效,不会受到惩罚。 耸耸肩

【问题讨论】:

    标签: windows command-line cmd command-prompt


    【解决方案1】:

    你可以这样做:

    for /f "delims=ÿ" %a in ('dir /b /ad ^| find /v ".aspx"') do rd /s /q %a
    for /f "delims=ÿ" %a in ('dir /b /a-d ^| find /v ".aspx"') do del /s /q /f %a
    

    请先在测试目录上运行。

    另一种形式:

    for /f "delims=ÿ" %a in ('dir /b /a-d') do if not "%~xa"==".aspx" del /q %a
    

    作为批处理文件:

    @echo off
    for /f "delims=ÿ" %%a in ('dir /b /a-d ^| find /v ".aspx"') do del /s /q /f %%a
    

    或者

    @echo off
    for /f "delims=ÿ" %%a in ('dir /b /a-d') do if not "%%~xa"==".aspx" del /q %%a
    

    将其保存到 file.batfile.cmd 之类的文件中,然后运行 ​​x:\path\to\file.batx:\path\to\file.cmd

    【讨论】:

    • 我不认为第一个会解决它,因为那是删除目录。我不需要这样做,也不需要搜索那些目录......只需 CUR_DIR。话虽如此,您的第二个陈述似乎已经成功了。有 5 个文件应该被删除。找到这 5 个并返回:已删除文件 - foo/bar.config 等。
    • 当把它放在一个 bash 脚本中时,它似乎并不喜欢那样。 IE。 chdir foo [你的命令] chdir ..
    • @Fallenreaper 这是一个 cmd.exe 命令。您可以在称为批处理文件的文件上编译它们。批处理文件不同于 bash 或 shell 脚本。
    • 哦。好的,我创建了一个 bash 脚本(我想)我想我需要把我的脚本变成一个文件?
    • 我将如何获取我创建的这个批处理文件然后成功运行它?有什么特别的事情我应该做的吗?
    猜你喜欢
    • 2012-02-28
    • 2011-12-11
    • 1970-01-01
    • 2014-12-12
    • 2022-11-02
    • 2011-04-17
    • 1970-01-01
    • 2010-12-30
    • 2014-04-05
    相关资源
    最近更新 更多