Replace 用于在.net项目中设置hintpath的Cmd脚本
我正在尝试创建一个bat或cmd文件,该文件将更改我的第三方dll的“损坏”链接路径,以便它引用我的固定dll路径(p驱动器)。脚本必须: 1) 循环浏览“我的主项目”文件夹下的所有文件夹,查找以.csproj结尾的所有文件 2) 循环遍历每个文件并将“Replace 用于在.net项目中设置hintpath的Cmd脚本,replace,cmd,Replace,Cmd,我正在尝试创建一个bat或cmd文件,该文件将更改我的第三方dll的“损坏”链接路径,以便它引用我的固定dll路径(p驱动器)。脚本必须: 1) 循环浏览“我的主项目”文件夹下的所有文件夹,查找以.csproj结尾的所有文件 2) 循环遍历每个文件并将“c:\xx\yy\q.dll”的每个实例替换为“P:\q.dll” 谢谢 问候,, styrmir如果可能,我强烈建议使用PowerShell执行此任务。以下是你需要做的事情: Get-ChildItem -Recurse -Filter *.c
styrmir如果可能,我强烈建议使用PowerShell执行此任务。以下是你需要做的事情:
Get-ChildItem -Recurse -Filter *.csproj -Path YOUR_TARGET_ROOT_DIRECTORY_HERE |
ForEach-Object {
(Get-Content $_.FullName) |
ForEach-Object {
$_.Replace('<HintPath>c:\xx\yy\q.dll</HintPath>', '<HintPath>P:\q.dll</HintPath>')
} |
Set-Content $_.FullName -WhatIf
}
关于这一点:
$_ -replace '\<HintPath\>C:\\.*\\q.dll\</HintPath\>', '<HintPath>P:\q.dll</HintPath>'
$\-替换“\C:\.\\\q.dll\”,“P:\q.dll”
谢谢您的回复。我将尝试使用powershell。出于好奇,您知道我将如何修改建议的脚本,以便\xx\yy是不同长度的通配符-即一些路径可能是c:\xx\yy\q.dll,而其他路径可能是c:\zz\rr\mm\dd\o.dll?不客气,我已更新了我的答复,以匹配您的新答案。
$_ -replace '\<HintPath\>C:\\.*\\q.dll\</HintPath\>', '<HintPath>P:\q.dll</HintPath>'