在 Windows 中使用通配符重命名和覆盖文件
Rename and overwrite files using wildcard in Windows
我正在编写用于自动部署的脚本,我需要用相同的文件名替换我的文件。
比如我当前目录下有以下文件
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、rename-item 但仍然找不到正确的方法。有人可以帮忙吗? bat / powershell 脚本都受到欢迎。使用循环也可以。谢谢。
几乎是相同的代码,但在cmd / batch files
中我们可以访问文件名的元素。
从命令行
for %a in (*.tokenized) do move /y "%a" "%~na"
或者,对于批处理文件(您需要转义 for
可替换参数)
for %%a in (*.tokenized) do move /y "%%a" "%%~na"
由于文件的扩展名(最后一个点后的文本)是 .tokenized
,当您仅请求被引用文件的名称(不带扩展名)时 (%%~na
),您会得到原始文件名。
这个 PowerShell 脚本应该可以完成这项工作:
Get-ChildItem *.tokenized | % {
move $_.Name ([System.IO.Path]::GetFileNameWithoutExtension($_.Name)) -Force
}
我正在编写用于自动部署的脚本,我需要用相同的文件名替换我的文件。
比如我当前目录下有以下文件
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、rename-item 但仍然找不到正确的方法。有人可以帮忙吗? bat / powershell 脚本都受到欢迎。使用循环也可以。谢谢。
几乎是相同的代码,但在cmd / batch files
中我们可以访问文件名的元素。
从命令行
for %a in (*.tokenized) do move /y "%a" "%~na"
或者,对于批处理文件(您需要转义 for
可替换参数)
for %%a in (*.tokenized) do move /y "%%a" "%%~na"
由于文件的扩展名(最后一个点后的文本)是 .tokenized
,当您仅请求被引用文件的名称(不带扩展名)时 (%%~na
),您会得到原始文件名。
这个 PowerShell 脚本应该可以完成这项工作:
Get-ChildItem *.tokenized | % {
move $_.Name ([System.IO.Path]::GetFileNameWithoutExtension($_.Name)) -Force
}