Powershell 批处理文件以打开txt替换文本保存并关闭
我知道这个社区是为了帮助人们,我不是百分之百地要求别人做一项委托工作或w/e,但我希望有一系列的批处理文件,用于将某些数字更改为每个批处理文件的特定数字Powershell 批处理文件以打开txt替换文本保存并关闭,powershell,batch-file,text,replace,Powershell,Batch File,Text,Replace,我知道这个社区是为了帮助人们,我不是百分之百地要求别人做一项委托工作或w/e,但我希望有一系列的批处理文件,用于将某些数字更改为每个批处理文件的特定数字 echo off if exist %application.yml del %application.yml for /F "delims=" %%l in (%1) do ( set "line=%%l" set "line=%line:specific text=another word%" echo/%line%
echo off
if exist %application.yml del %application.yml
for /F "delims=" %%l in (%1) do (
set "line=%%l"
set "line=%line:specific text=another word%"
echo/%line%>> %application.yml)'
我该如何设置它来将一组数字替换为设置的数字,对不起,我是个十足的白痴
文件本身application.yml
product:
# Cntrl alt 1 Mini, 2 m16, 3 scar, 4 m4169, 5 akm, 6 ump,7 sks
discordUsername:
discordPassword:
maxCPUsUsage: 4
shutdownKey: 0x7B
reloadConfigKey: 0x79
screenResolutionX: 1920
screenResolutionY: 1080
playerEsp: true
playerEspColor: 0xFF00FF
playerEspPointSize: 1
radarEsp: true
radarEspColor: 0x0000FF
radarEspPointSize: 2
vehicleEsp: true
vehicleEspColor: 0xff0000
vehicleEspPointSize: 1
vehicleEspHotkey: 0x2D
lootEsp: true
lootEspColor: 0x00FF00
lootAirdropEspColor: 0xffffff
lootEspPointSize: 1
lootEspHotkey: 0x24
redrawTime: 0
reloadDataTime: 2000
aimEnabled: true
aimKey: 0x39
aimFOV: 95
aimFrequency: 6
aimPrecision: 1
aimSpeed: 1
bulletSpeed: 990
aimHitbox: 0
# Key list: https://msdn.microsoft.com/en-us/en-en/library/windows/desktop/dd375731(v=vs.85).aspx
所以本质上,我想替换的数字是子弹速度,它可以是以前更改的多个数字,例如
990
870
400
如果是这些例子中的任何一个,我想用
900
等等等等
因此,它会搜索任何可能的数字,并将其更改为指定的数字,然后以相同的文件名保存文件
提前感谢您的帮助,如果我在示例中完全诚实,我甚至不知道要更改什么,只需将一个数字替换为另一个,更不用说多实例搜索:)
再次请求任何建议或帮助。以下注释.bat
脚本应执行此操作,但空行不会复制到输出文件:
@ECHO OFF
SETLOCAL EnableExtensions
rem redirect all output to a brand new file
>application.yml (
rem parse a file (supplied file name %1 must not be equal to "application.yml")
for /F "usebackq delims=" %%l in ("%~1") do (
rem parse each line
for /F "tokens=1* delims=:" %%L in ("%%~l") do (
if /I "%%~L"=="bulletSpeed" (
rem modified line
echo(%%L: 900
) else (
rem original line
echo(%%l
)
)
)
)
顺便说一句,在原始脚本中,您需要正确引用括号内代码块(如FOR
循环体)中定义的变量(重新定义),例如:
echo关闭
SETLOCAL EnableExtensions EnableDelayedExpansion
如果存在application.yml del application.yml
对于/F“delims=“%%l in(%1)do(
设置“行=%%l”
设置“行=!行:特定文本=另一个单词!”
echo/!line!>>application.yml
)
资源(必读):
- (命令参考)
- (有用的特殊性)
- (
等特殊页面)%~L
- (专页)
- (
,>
等特殊页面)
.bat
脚本应该执行此操作,尽管空行不会复制到输出文件中:
@ECHO OFF
SETLOCAL EnableExtensions
rem redirect all output to a brand new file
>application.yml (
rem parse a file (supplied file name %1 must not be equal to "application.yml")
for /F "usebackq delims=" %%l in ("%~1") do (
rem parse each line
for /F "tokens=1* delims=:" %%L in ("%%~l") do (
if /I "%%~L"=="bulletSpeed" (
rem modified line
echo(%%L: 900
) else (
rem original line
echo(%%l
)
)
)
)
顺便说一句,在原始脚本中,您需要正确引用括号内代码块(如FOR
循环体)中定义的变量(重新定义),例如:
echo关闭
SETLOCAL EnableExtensions EnableDelayedExpansion
如果存在application.yml del application.yml
对于/F“delims=“%%l in(%1)do(
设置“行=%%l”
设置“行=!行:特定文本=另一个单词!”
echo/!line!>>application.yml
)
资源(必读):
- (命令参考)
- (有用的特殊性)
- (
等特殊页面)%~L
- (专页)
- (
,>
等特殊页面)
- 正则表达式是进行此类编辑的理想选择。
除了findstr有限的功能外,批处理还缺少重新支持 此包装的powershell one liner将在cmd行或批处理文件中执行此任务
powershell -NoP -C "(gc application.yml) -Replace '(?<=bulletSpeed: )\d+','900'|sc application.yml"
正则表达式是进行此类编辑的理想选择。
除了findstr有限的功能外,批处理还缺少重新支持 此包装的powershell one liner将在cmd行或批处理文件中执行此任务
powershell -NoP -C "(gc application.yml) -Replace '(?<=bulletSpeed: )\d+','900'|sc application.yml"
本网站不是要求调试程序员的合适场所,但是如果您发布输入文件的样本,
%1
,并显示其精确布局和大小,您可能会幸运地得到一个响应,这样您就不用再调试别人了。顺便说一句,不要将代码和文件信息发布到评论部分,请使用该工具将其添加到您的原始帖子中。我已再次编辑了您的帖子,希望能够正确格式化您新添加的.yml
文件,如果现在错误,请告诉我!您是只想替换该文件中与990
匹配的精确值,还是只想替换仅属于bulletSpeed
或其他内容的匹配值。您太棒了,谢谢您的帮助:)基本上我想制作一些批处理文件来编辑它(bullet speed)或者将任何其他子弹速度指定给特定的批处理文件,以便我可以将它们指定给键盘上的宏键,以便随时更改子弹速度。我可以在基本代码之后做腿部工作(真的:)但是是的,只是子弹的速度。虽然每种子弹速度的数字都应该与该网站内的任何其他内容相关。yml该网站不是要求委托程序员的合适地点,但是如果您要发布输入文件的样本,%1
,其中包含精确的布局和大小指示,你可能很幸运地得到了一个回复,这样你就不用再委以某人了。顺便说一句,不要将代码和文件信息发布到评论部分,请使用该工具将其添加到您的原始帖子中。我已再次编辑了您的帖子,希望能够正确格式化您新添加的.yml
文件,如果现在错误,请告诉我!您是只想替换该文件中与990
匹配的精确值,还是只想替换仅属于bulletSpeed
或其他内容的匹配值。您太棒了,谢谢您的帮助:)基本上我想制作一些批处理文件来编辑它(bullet speed)或者将任何其他子弹速度指定给特定的批处理文件,以便我可以将它们指定给键盘上的宏键,以便随时更改子弹速度。我可以在基本代码之后做腿部工作(真的:)但是是的,只是子弹的速度。tho每个子弹速度的数字应该与.yml中的任何其他内容相关