相关疑难解决方法(0)

PowerShell:设置内容存在“文件已在使用中”问题

我正在使用一个PowerShell脚本来查找给定目录内所有带有PATTERN的文件,打印出文档的相关行并突出显示PATTERN,然后用提供的REPLACE单词替换PATTERN,然后将文件保存回去。因此,它实际上是在编辑文件。

除了我无法更改文件外,因为Windows抱怨文件已经打开。我尝试了几种方法来解决此问题,但仍然遇到问题。也许有人可以帮助您:

param(
    [string] $pattern = ""
    ,[string] $replace = ""
    ,[string] $directory ="."
    ,[switch] $recurse = $false
    ,[switch] $caseSensitive = $false)

if($pattern -eq $null -or $pattern -eq "")
{
    Write-Error "Please provide a search pattern." ; return
}

if($directory -eq $null -or $directory -eq "")
{
    Write-Error "Please provide a directory." ; return
}

if($replace -eq $null -or $replace -eq "")
{
    Write-Error "Please provide a string to replace." ; return
}

$regexPattern = $pattern
if($caseSensitive -eq $false) { …
Run Code Online (Sandbox Code Playgroud)

powershell scripting replace locking file

3
推荐指数
2
解决办法
5146
查看次数

查找字符串并替换批处理文件中的特定字母

我有一个创建一个autosys作业来触发批处理文件,该文件将找到一个特定的字符串,然后替换接下来的4个字符.

例如,如果文件(有多行)低于内容,我正在搜索播放

疯狂的狐狸从老藤上跳下来,踢足球.

我应该用"INFA"取代"socc"

我是批处理文件的新手,我的主管一直坚持只使用批处理文件.任何帮助都会得到很大的帮助.

谢谢,乔伊

string search batch-file

2
推荐指数
1
解决办法
1万
查看次数

如何使用 FINDSTR 仅获取匹配模式的行号

我被困在 Windows 批处理(cmd)模式搜索中。我需要在文件中搜索模式并需要返回行号。我使用了FINDSTRwith/X选项,但它也将模式匹配的行附加到行号。

此外,我没有安装任何实用程序(如 unix-utilities)的特权,以便我可以cut用来提取行号。

windows cmd batch-file pattern-matching findstr

2
推荐指数
1
解决办法
7425
查看次数

batch:替换文本文件中的一行


我正在尝试替换这一行:

#        forward-socks5   /               127.0.0.1:9050 .
Run Code Online (Sandbox Code Playgroud)

这一个:

        forward-socks5   /               127.0.0.1:9050 .
Run Code Online (Sandbox Code Playgroud)

这行属于一个配置文件,必须通过从开头删除#符号来启用(UN评论),除了用另一个没有#符号替换行之外,我想不出更好的方法.
任何其他想法或方法都非常有用.

顺便说一句,文本前面的空格也在那里.
我已将文本粘贴到原始文件中.

提前致谢


编辑:
我已经设法做了线添加和删除使用我发现的两个代码和平.我唯一的问题是以下代码删除了输出文件中的每一个感叹号!

@echo off

:Variables
SETLOCAL ENABLEDELAYEDEXPANSION
set InputFile=config.txt
set OutputFile=config-new.txt
set _strFind=#        forward-socks5   /               127.0.0.1:9050 .
set _strInsert=        forward-socks5   /               127.0.0.1:9050 .
set i=0

:Replace
for /f "usebackq tokens=1 delims=[]" %%A in (`find /n "%_strFind%" "%InputFile%"`) do (set _strNum=%%A)
for /f "usebackq delims=" %%A in ("%InputFile%") do (
  set /a i = !i! + 1
  echo %%A>>"%OutputFile%"
  if [!i!] == [%_strNum%] (echo %_strInsert%>>"%OutputFile%") …
Run Code Online (Sandbox Code Playgroud)

replace batch-file line text-files

1
推荐指数
1
解决办法
2万
查看次数

读取批处理脚本中以空格分隔的单词

我需要在批处理脚本中逐字逐句阅读文本文件的内容.这些单词是空格分隔的.我试过这个,但它不起作用,只需要第一个字:

for /f "delims= " %%i in (%OUTPUT_FILE%) do echo %%i
Run Code Online (Sandbox Code Playgroud)

我也试过这个但是也不行:

for /f "tokens=* delims= " %%i in (%OUTPUT_FILE%) do echo %%i
Run Code Online (Sandbox Code Playgroud)

batch-file

0
推荐指数
1
解决办法
8629
查看次数

在批处理脚本中比较两个文件

我试图以这种方式比较两个文件,文件1的每一行将与文件2的每一行进行比较,如果没有找到匹配,则将该行写入单独的文件.

下面是我写的代码,但它没有按预期工作,

@echo on
cd path
for /f %%a in (file1.txt) do (
for /f %%b in (file2.txt) do (
if %%a==%%b
(
echo lines are same
) else (
echo %%a >> file3.txt
)
)
)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说,命令的语法不正确.请帮我解决一下这个.

batch-file file-comparison

0
推荐指数
1
解决办法
1万
查看次数