在Windows中使用通配符重命名和覆盖文件

时间:2018-09-13 12:28:10

标签: powershell batch-file rename wildcard

我正在研究用于自动部署的脚本,在该脚本中,我需要用相同的文件名替换文件。

例如,我当前目录中有以下文件

deployment.properties
wrapper.conf
config.properties

稍后,我将生成另一组这样的文件

deployment.properties.tokenized
wrapper.conf.tokenized
config.properties.tokenized

最后,我想使用* .tokenized版本替换现有的配置文件(在第一个代码块中),并删除标记化的文件。

在Linux中,可以执行以下操作。但是我不知道如何在Windows中做

for f in *tokenized; 
  do mv "$f" "`echo $f | sed s/tokenized//`";
done

我尝试使用powershell的move-item,重命名-item,但仍然找不到正确的方法。有人可以帮忙吗?蝙蝠/ Powershell脚本都欢迎。使用循环也可以。谢谢。

1 个答案:

答案 0 :(得分:1)

几乎是相同的代码,但是在cmd / batch files中,我们可以访问文件名的元素。

从命令行

for %a in (*.tokenized) do move /y "%a" "%~na"

或者,对于批处理文件(您需要转义for可替换参数)

for %%a in (*.tokenized) do move /y "%%a" "%%~na"

由于文件的扩展名(最后一个点后的文本)为.tokenized,因此,当您仅请求引用文件的名称(无扩展名)时,%%~na就会得到原始文件文件名。