我对powershell几乎没有了解:(
嗨,我有两个可能的选项来替换.ini文件中的文本,一个是菜单样式的批处理,在其中选择一个选项将执行命令。
我的问题是:如果使用批处理代码,我只能更改一个已知的分辨率,因为我不知道如何添加多个替换动作,以便在失败时起作用。
Powershell代码确实执行了多个替换命令,但是我不知道如何对其进行编辑以将其用作批处理命令(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
答案 0 :(得分:0)
您真正想要的是一(1)行吗?
# python 2.7
import os
# xargs command feeds each container to docker inspect
# You can add {{.Port}} after {{.IPAddress}}
cmd = "docker ps -q | xargs -r docker inspect --format \"'{{.Name }}': '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}',\""
output = os.popen(cmd).read()
output = eval("{" + output.replace("\n","").replace("/","") + "}")
# you now have a dictionary of the values; manipulate as necessary
# below i just print key(k) and value(v)
for k,v in zip(output.keys(), output.values()):
print("Container: {} IP: {}".format(k,v))
或
(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'
答案 1 :(得分:0)
您还可以将脚本放置在文件中并按以下方式运行:
powershell.exe -file My\FilePath.ps1
这是powershell可执行文件中的帮助部分:
PowerShell-帮助
-文件
在本地范围(“点源”)中运行指定的脚本,以便 脚本创建的函数和变量在 当前会话。输入脚本文件路径和任何参数。 文件必须是命令中的最后一个参数,因为所有字符 在解释File参数名称后键入 作为脚本文件路径,后跟脚本参数。