windows - 在 Windows 上使用 CMD 从文件目录中删除特定子字符串

标签 windows cmd substring

我经常使用免费的在线无损文件压缩器来节省磁盘空间,并使传输和推送存储库更容易。我对压缩器的主要问题是它在每个文件名的末尾附加“-min”。由于种种原因,想通过覆盖的方式来替换原来的文件;而不是删除旧文件并保留新文件(使用"new"名称)。

对于我的 PDF 目录,我尝试了以下方法: FOR/R %f IN (*-min.pdf) DO REN "%f"*.pdf

它似乎正确地找到了所有相应的文件,但它们的名称保持不变。我做错了什么?是否有一个与文件格式无关的命令,这样我就不必将 txt、png 等文件扩展名进行分割?

我只需要它从每个文件名末尾(文件扩展名之前)删除 -min。

最佳答案

FOR /R %f IN (*-min.pdf) DO REN "%f" *.pdf

对于单行(在 cmd 提示符下),从以下内容中删除 echo

cmd /v:on /c "for /R %f in (*-min.pdf) do @set "nx=%~nxf" & echo ren "%~ff" "!nx:-min.pdf=.pdf!""

可以轻松更改上述内容以执行其他字符串操作,但是它在技术上并不是万无一失的,例如它将重命名名为“a-min.pdf.b-min”的文件.pdf-c-min.pdf”“a.pdf.b.pdf-c.pdf。”。如果在这种情况下这是一个问题,那么请使用以下内容,它与 @Mofi 的 answer 中的内容基本相同。 .

cmd /v:on /c "for /R %f in (*-min.pdf) do @set "nn=%~nf" & echo ren "%~ff" "!nn:~0,-4!%~xf""

关于windows - 在 Windows 上使用 CMD 从文件目录中删除特定子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62641799/

相关文章:

python - 如何在从 Windows 10 上的 Docker 镜像运行的 Jupyter Notebook 上安装包

windows - 如何在 Windows 任务计划程序上安排 azcopy?

cmd - ExtJS 6 - 没有 CMD 的枢轴

C++正则表达式提取子字符串

mysql - SQL 如果子字符串出现则选择然后复制直到子字符串否则保持原始

windows - 有没有网站提供与 Windows Server 的 Slice 主机相同的服务?

windows - 如何在 Windows 批处理文件中嵌入文本文件

java - AutoIT exe 手动工作,但在使用 JAVA 调用时,它只是启动 cmd,之后没有任何反应

batch-file - 如何搜索用户文件夹,同时避免使用 DIR 挖掘得太深?

javascript - Javascript 中带有 HTML 标签的子字符串文本