Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 用于在.net项目中设置hintpath的Cmd脚本_Replace_Cmd - Fatal编程技术网

Replace 用于在.net项目中设置hintpath的Cmd脚本

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

我正在尝试创建一个bat或cmd文件,该文件将更改我的第三方dll的“损坏”链接路径,以便它引用我的固定dll路径(p驱动器)。脚本必须: 1) 循环浏览“我的主项目”文件夹下的所有文件夹,查找以.csproj结尾的所有文件 2) 循环遍历每个文件并将“c:\xx\yy\q.dll”的每个实例替换为“P:\q.dll

谢谢

问候,,
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>'