我对powershell的了解最少甚至没有:(
您好我有两个可能的选项来替换.ini文件中的文本,一个是菜单式批处理,选择一个选项将执行命令。
我的问题是:如果我使用批处理代码,我只能更改已知的分辨率,因为我不知道如何添加多个替换操作,以便在失败时它们起作用。
Powershell代码执行MULTIPLE替换命令,但我不知道如何编辑它以将其用作批处理命令(powershell -command
等)
先感谢您 :)
批处理脚本:
@echo off
set ffile='resolutions.ini'
set HDReady='/resolution:1280,720'
set FullHD='/resolution:1920,1080'
set QuadHD='/resolution:2560,1440'
set UltraHD='/resolution:3840,2160'
powershell -Command "(gc %ffile%) -replace %hdready%, %fullhd% | Out-File %ffile% -encoding utf8"
Powershell脚本:
$original_file = 'path\resolutions.ini'
$destination_file = 'path\resolutions.ini'
(Get-Content $original_file) | Foreach-Object {
$_ -replace '/resolution:1280,720', '/resolution:1920,1080' `
-replace '/resolution:2560,1440', '/resolution:1920,1080' `
-replace '/resolution:3840,2160', '/resolution:1920,1080'
} | Set-Content $destination_file
你真正想要的是一(1)行吗?
(Get-Content 'path\resolutions.ini') | Foreach-Object {$_ -replace '/resolution:1280,720', '/resolution:1920,1080' -replace '/resolution:2560,1440', '/resolution:1920,1080' -replace '/resolution:3840,2160', '/resolution:1920,1080'} | Set-Content 'path\resolutions.ini'
要么
$original_file = 'path\resolutions.ini'; $destination_file = 'path\resolutions.ini'; (Get-Content $original_file) | Foreach-Object {$_ -replace '/resolution:1280,720', '/resolution:1920,1080' -replace '/resolution:2560,1440', '/resolution:1920,1080' -replace '/resolution:3840,2160', '/resolution:1920,1080'} | Set-Content $destination_file
您也可以将脚本放在一个文件中并按原样运行:
powershell.exe -file My\FilePath.ps1
这是powershell可执行文件的帮助部分:
PowerShell - 帮助
-文件
在本地作用域(“dot-sourced”)中运行指定的脚本,以便脚本创建的函数和变量在当前会话中可用。输入脚本文件路径和任何参数。文件必须是命令中的最后一个参数,因为在File参数名称后键入的所有字符都被解释为脚本文件路径,后跟脚本参数。