首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于删除除图像文件扩展名以外的所有内容的Windows脚本

用于删除除图像文件扩展名以外的所有内容的Windows脚本
EN

Stack Overflow用户
提问于 2014-09-05 20:54:43
回答 2查看 1.1K关注 0票数 2

我想要在Windows 7上创建一个脚本来删除目录中所有不是图片的内容。所以

代码语言:javascript
复制
    for all files in directory X

    if file y does not have extension in (.png, .gif, .jpeg)

    delete y

    end

就这样

我如何找到或创建这样的脚本?

请注意,有些图片很重要,所以这个脚本必须正确工作:)我不认为我应该在这里进行实验,即使我在一个带有实验文件的小目录上测试了我自己的脚本,我也不相信我应该尝试它。

我有这样的代码:

代码语言:javascript
复制
::extensions are delimited with space // filename is del_stuff.bat

set "extensions_list=.png .gif .jpeg .bmp .jpg "
pushd "C:\Users\denman\Desktop\xxx\"
for /f "delims=" %%f in ('dir /b ^|findstr /i /e /v "%extensions_list%" ') do (
        echo del /q /f "%%~f" 
)
popd

但我知道这个错误:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-05 21:09:32

代码语言:javascript
复制
@echo off
::extensions are delimited with space
set "extensions_list=.png .gif .jpeg "
pushd "C:\Directory_with_pictures" && (
   for /f "delims=" %%f in ('dir /b /a-d ^|findstr /i /e /v "%extensions_list%" ') do (
        echo del /q /f "%%~f"
   )
  popd
)

“回波”是验证结果,.remove,回波,以激活deletion.And更改"C:\Directory_with_pictures"与实际路径。

编辑测试脚本:

代码语言:javascript
复制
@echo off

md test_dir>nul 2>&1
echo #>test_dir\t1.png
echo #>test_dir\t1.txt
echo #>test_dir\t1.tst
echo #>test_dir\t1.jpg
echo #>test_dir\t1.gif

echo #>test_dir\t2.png
echo #>test_dir\t2.txt
echo #>test_dir\t2.tst
echo #>test_dir\t2.jpg
echo #>test_dir\t2.gif

echo -- before deleting--
dir /b .\test_dir\*
echo(
echo(

::extensions are delimited with space
set "extensions_list=.png .gif .jpeg .jpg"


pushd "test_dir"
for /f "delims=" %%f in ('dir /b ^|findstr /i /e /v "%extensions_list%" ') do (
        del /q /f "%%~f"
)
popd

echo -- after deleting --
dir /b .\test_dir\*

输出:

代码语言:javascript
复制
-- before deleting--
t1.gif
t1.jpg
t1.png
t1.tst
t1.txt
t2.gif
t2.jpg
t2.png
t2.tst
t2.txt


-- after deleting --
t1.gif
t1.jpg
t1.png
t2.gif
t2.jpg
t2.png
票数 2
EN

Stack Overflow用户

发布于 2014-09-05 21:11:13

使用Powershell,您可以获得需要的文件列表,如下所示:

代码语言:javascript
复制
Get-ChildItem | where {!$_.PsIsContainer -and !(@(".png",".gif",".jpeg") -contains $_.Extension) }

我把删除命令留给了您,确保列表在执行之前返回正确的结果。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25693847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档