我如何从一行批处理文件中运行多个替换命令

时间:2018-09-14 14:08:14

标签: powershell batch-file

我对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

2 个答案:

答案 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参数名称后键入      作为脚本文件路径,后跟脚本参数。