我需要帮助将以下 Linux/Mac 命令转换为 Windows 批处理脚本。
find / -regex ``^.*/Excel_[a-z]*.xls'' -delete 2>/dev/null
find / -regex ``^.*/presentation[0-9]*[a-z]*.ppt'' -delete 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
基本上使用正则表达式,我需要在给定的 Windows 框中找到任何 .xls/.ppt 文件(采用上述格式)并将其删除。
抱歉,我是 Windows 批处理文件新手。
你真的没有解释你的象形文字的含义。
在批处理文件中,
@echo off
setlocal
dir /s "c:\local root\Excel_*.xls"
Run Code Online (Sandbox Code Playgroud)
将显示所有Excel_以扩展名开头匹配的文件.xls
(如果这就是您想要的,只需替换dir为即可del删除它们;添加>nul将抑制消息;添加2>nul将抑制错误消息)
如果您希望文件开始Excel_然后跟随任何仅字母,那么
for /f "delims=" %%a in ('dir /b /s /a-d Excel_*.xls ^| findstr /E /R "\\Excel_[a-z]*\.xls" ') do echo "%%a"
Run Code Online (Sandbox Code Playgroud)
以(基本)形式(即仅文件名)生成dir目录列表- 带有子目录(附加完整目录名)并抑制目录名。这是通过管道传输来过滤掉所需的文件名。结果被逐行分配,意思是“不要对数据进行标记”/b/s/a-dfindstr%%adelims=
应该显示所有符合该条件的文件 - 但区分大小写;添加/i到findstr开关以使其不区分大小写。(/r 表示“正则表达式”在findstr的受限实现中;/e 表示“结束” - 我倾向于使用这些$)\\旨在实现转义\以确保文件名匹配完整(即找不到“some_prefixExcel_whatever.xls” ) - 我将把\.想要做什么留给你的想象力......
(再次更改echo为del删除并添加到重定向对话中)
另一个正则表达式 - 好吧,跟随弹跳球。看起来您想要的.ppt文件名称presentation以一系列可能的数字开头,然后是一系列字母。我建议
findstr /e /r "\\presentation[0-9]*[a-z]*\.ppt" for that task.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14828 次 |
| 最近记录: |