相关疑难解决方法(0)

如何使用Windows命令行环境查找和替换文件中的文本?

我正在使用Windows命令行环境编写批处理文件脚本,并希望将文件中某些文本(例如"FOO")的每次出现更改为另一个(例如"BAR").最简单的方法是什么?任何内置功能?

windows scripting command-line batch-file text-files

468
推荐指数
20
解决办法
84万
查看次数

变量的行为不符合预期

我一直在努力尝试在这个批处理文件中获得正确的语法,我无法弄清楚为什么有些东西不起作用.

  1. i每次执行此变量时,变量都不会增加.
  2. 连接strc似乎没有连接.

这是我的代码:

set i=0
set "strc=concat:"

for %%f in (*.mp4) do (
    set /a i+=1
    set "str=intermediate%i%.ts"

    set strc="%strc% %str%|"

    ffmpeg -i "%%f" -c copy -bsf:v h264_mp4toannexb -f mpegts "%str%"
)

set strc="%strc:-1%"
ffmpeg -i "%strc%" -c copy -bsf:a aac_adtstoasc Output.mp4
Run Code Online (Sandbox Code Playgroud)

batch-file delayedvariableexpansion

17
推荐指数
1
解决办法
3861
查看次数

Windows批处理文件以回显特定的行号

因此,对于我当前困境的第二部分,我有一个文件夹列表c:\file_list.txt.我需要能够根据行号提取它们(好吧,用一些mod回显它们),因为这个批处理脚本是由迭代宏进程调用的.我将行号作为参数传递.

@echo off
setlocal enabledelayedexpansion
set /a counter=0
set /a %%a = ""
for /f "usebackq delims=" %%a in (c:\file_list.txt) do (
   if "!counter!"=="%1" goto :printme & set /a counter+=1
)
:printme
echo %%a
Run Code Online (Sandbox Code Playgroud)

这给了我一个输出%a.卫生署!所以,我试过回声!a!(结果 :) ECHO is off.; 我试过回声%a(结果:a)

我认为很容易做的就是修改head.bat这里找到的代码: Windows批处理命令从文本文件读取第一行,
而不是回显每一行 - 我只是回显最后一行找到的.并不像人们想象的那么简单.我注意到我的柜台由于某种原因停留在零; 我想知道这是否set /a counter+=1正在做我认为它正在做的事情.

windows batch-file

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

批量在for/f命令上过早关闭

我有一个批处理文件(在Windows XP中,激活了命令扩展名),其中包含以下行:

for /f %%s in ('type version.txt') do set VERSION=%%s
Run Code Online (Sandbox Code Playgroud)

在某些计算机上,它运行正常(如此SO问题所示),但在其他计算机上它会杀死cmd(控制台窗口刚刚关闭)

为什么?


注意:计算机似乎有类似的配置:XpSP2,用户具有管理权限,HKEY_CURRENT_USER\Software\Microsoft\Command Processor中没有定义"命令处理器"...

batch-file

5
推荐指数
1
解决办法
3057
查看次数

批处理命令仅从输入中获取第一行

我正在寻找一个带有文件的DOS批处理程序:

First input line
Second input line
Third input line...
Run Code Online (Sandbox Code Playgroud)

并输出"第一输入线"

batch-file

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

set /p 没有像宣传的那样工作

我在将文件中的输入重定向到 set/p 时遇到问题

\n\n

这是我的脚本:

\n\n
@echo off\necho Reading: {%1}\ntype %1\necho(\necho Starting...\nset VAR=\nset /P VAR=<%1\necho VAR is {%VAR%}...\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在其他地方读过(/sf/answers/547907041/),我正在使用的语法将起作用。它不是!

\n\n

这是我的输出:

\n\n
Reading: {Fruit.txt}\nPears\nApples\nOranges\nKiwi\nGrapes\nKumquat\n\nStarting...\nVAR is {\xc2\xa0\xe2\x96\xa0P}...\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么 - 给出了什么?

\n

batch-file

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