0

所以我想将文件夹中的所有文件复制到具有不同扩展名的文件夹中。我在 Windows 7 上,我认为最简单的方法是使用 .cmd 脚本。(我决定反对 .bat,因为这似乎是一个较旧的解决方案)

我的文件遵循这种模式

BrettFavre.nunit.config
JohnElway.nunit.config
TimTebow.nunit.config 

我想让他们看起来像这样

BrettFavre.dll.config
JohnElway.dll.config
TimTebow.dll.config 

我的解决方案是 copy *.config *.dll.config

结果不是以 .dll.config 结尾,而是以 .nunit.dll.config 结尾。任何想法,如果您知道 cmd 脚本的良好参考,请告诉我。我很难确定指南是用于 .bat 还是用于 .cmd 。

谢谢

4

2 回答 2

4

从命令行:

for %A in (*.config) do for %B in ("%~nA") do copy "%A" "%~nB.dll.config"

从批处理文件中,将百分比加倍

for %%A in (*.config) do for %%B in ("%%~nA") do copy "%%A" "%%~nB.dll.config"
于 2012-06-16T03:39:53.147 回答
1

从命令行使用 powershell(当然你也可以把它放到脚本中):

PS> $files = Get-ChildItem *.nunit.config
PS> foreach($file in $files) {
>> $newname = [regex]::replace($file, "nunit", "dll")
>> Copy-Item $file -destination $newname
>> }
>> 
PS> 

您可以将其压缩为单行命令,如下所示:

gci *.nunit.config | % {copy $_ -dest ($dest = [regex]::replace($_, "nunit", "dll"))}

@Joey 提出了一个很好的观点。您可以使用 -replace 运算符简化此操作:

gci *.nunit.config | % {copy $_ -dest ($_ -replace "nunit", "dll")}
于 2012-06-15T22:36:57.440 回答