如何解决使用 powershell 脚本修改 notepad++ 列
我有一个记事本++,其中有一列可以通过执行alt+shift+箭头键来修改,就像记事本++中的列模式编辑一样。 (例如用 B 代替 A):
我想通过 powershell 脚本自动执行此操作,而无需进行记事本 ++ 列模式编辑。例如,我想通过在脚本中输入一个字母来更改整个列
$lettre = [string]
$array = "B","D","M","N","P","Z"
while ($true){
$letter = Read-Host "What medicalization wanted to put you ? B,D,M,N,P,Z ? or t to finish"
if ($lettre -eq "B" ){
echo "Medicalization B will be inserted"
}
if ($lettre -eq "D"){
echo "Medicalization D will be inserted"
}
if ($lettre -eq "M"){
echo "Medicalization M will be inserted"
}
if ($lettre -eq "N"){
echo "Medicalization N will be inserted"
}
if ($lettre -eq "P"){
echo "Medicalization N will be inserted"
}
if ($lettre -eq "Z"){
echo "Medicalization Z will be inserted"
}
if ($lettre -eq "t"){
echo "Finished"
break
}
}
我想在 powershell 上输入命令时基于行和列或使用列模式编辑。 是否可以在 powershell 上执行此操作?如果不是,我应该使用哪种编程语言以及如何使用?
解决方法
虽然我不太确定您想在这里实现什么,但您可以使用 switch
代替所有这些 if
条件。
顺便说一句,您要求变量 $letter
,但在您的 if
中,您使用 $lettre
假设您有一个包含以下几行的文本文件:
Entrance: A
Departure: A
Consultation: A
Meeting: A
Transfer: A
Permission: A
然后你就可以了
# read the text from the file as string array
$txt = Get-Content -Path 'D:\Text\inputFile.txt'
# create a boolean flag to exit the endless while loop
$stopLoop = $false
while(!$stopLoop) {
switch -Regex (Read-Host "What medicalization wanted to put you ? B,D,M,N,P,Z ? or T to finish") {
'^T' { $stopLoop = $true; break } # set the flag to exit the while loop and break out of the switch
'^[BDMNPZ]' {
# get the first (or only) character from the user input and convert to uppercase
$letter = $_[0].ToString().ToUpper()
# loop through each line of the input text and replace the last character
$newtext = $txt | ForEach-Object {$_ -replace '[a-z]$',$letter}
# output on screen
$newtext
# or write to new text file if you like
# $newtext | Set-Content -Path 'D:\Text\newText.txt'
}
default { Write-Host "Bad input.. Only B,Z or T allowed" -ForegroundColor Red }
}
Write-Host
}
正则表达式详情:
-
^
表示输入字符串应以后面的字符开头。 -
^[BDMNPZ]
表示输入字符串应该以任何方括号内的字符开头 - 在
-replace
中,[a-z]$
表示仅定位该行的最后一个字符
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。