我正在研究用于自动部署的脚本,在该脚本中,我需要用相同的文件名替换文件。
例如,我当前目录中有以下文件
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脚本都欢迎。使用循环也可以。谢谢。
答案 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
就会得到原始文件文件名。