我正在使用bat脚本来替换另一个bat文件中的内容。除此之外,我还想添加换行符;\n〃;正在反射而不是输出中的换行符.bat
%SYSTEMROOT%\System32\WindowsPowerShell \v1.0\powershell.exe-命令"(gc outfile.txt(-替换'
svn','\nC:\Projects\TortoiseSVN\bin\svn.exe'|Out File-编码默认outfile.bat">
有人能帮我吗?
您应该使用反斜线而不是后斜杠,并且包含它的替换字符串应该是双引号而不是单引号。由于这些双引号将嵌套在双引号命令中,因此需要用cmd.exe的反斜杠转义这些双引号,以便根据需要将它们传递给powershell.exe:
%SystemRoot%System32WindowsPowerShellv1.0powershell.exe -Command "(Get-Content 'outfile.txt') -Replace 'svn', "`nC:ProjectsTortoiseSVNbinsvn.exe" | Out-File -Encoding Default 'outfile.bat'"
我不经常使用单引号,更喜欢使用双引号,这意味着在双引号命令中,我需要转义所有引号,而不仅仅是包含换行符的命令:
%SystemRoot%System32WindowsPowerShellv1.0powershell.exe -NoProfile "(Get-Content "outfile.txt") -Replace "svn", "`nC:ProjectsTortoiseSVNbinsvn.exe" | Out-File -Encoding Default "outfile.bat""