我经常使用免费的在线无损文件压缩器来节省磁盘空间,并使传输和推送存储库变得更容易。我对压缩器的主要问题是它在每个文件名的末尾附加“-min”。由于种种原因,想通过覆盖的方式来替换原来的文件;而不是删除旧文件并保留新文件(使用“新”名称)。
对于我的 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!""
可以轻松更改以上内容以执行其他字符串操作,but它在技术上并不是万无一失的,例如它会重命名一个名为"a-min.pdf.b-min.pdf-c-min.pdf"
to "a.pdf.b.pdf-c.pdf."
。如果在这种情况下这是一个问题,那么使用以下内容,这与 @Mofi 的内容基本相同answer https://stackoverflow.com/a/62643815/5538420.
cmd /v:on /c "for /R %f in (*-min.pdf) do @set "nn=%~nf" & echo ren "%~ff" "!nn:~0,-4!%~xf""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)