batch-file 相关问题

批处理文件是一个文本文件,其中包含由MS-DOS,IBM OS / 2或Microsoft Windows系统上的命令解释程序执行的一系列命令。

为什么这段代码说回显已关闭?

这段代码有什么问题?它说 ECHO 已关闭。 @ECHO 关闭 set /p 模式=输入 ID: findstr %pattern% . .txt > 结果 如果%errorlevel%==0( 设置 var2= 这段代码有什么问题?它说ECHO is off。 @ECHO off set /p pattern=Enter id: findstr %pattern% .\a.txt > result if %errorlevel%==0 ( set var2= <result echo %var2% set var1=%var2:~5,3% echo %var1% > test.txt echo %var1% ) else ( echo error ) del result pause 如有任何帮助,我们将不胜感激。 如果你的变量在某处为空,则与单独使用命令“echo”相同,它只会打印 echo 的状态。 为了避免这种情况,您应该将所有 echo 命令替换为如下内容: echo var2: %var2% 这样,如果 %var2% 为空,它只会打印“echo var2:”而不是“echo off”。 正如 Laurent 所说,这不是 ECHO 的问题,这是你的代码的问题。 在批处理文件中,块在执行之前会被完全解析。 解析时,将完成所有百分比扩展,因此似乎您的变量无法在块内更改。 但是由于存在延迟扩展,延迟扩展将在执行时评估,而不是在解析块时评估。 必须启用它,默认情况下延迟扩展是禁用的。 @ECHO off setlocal EnableDelayedExpansion set /p pattern=Enter id: findstr %pattern% .\a.txt > result if %errorlevel%==0 ( set var2= <result echo(!var2! set var1=!var2:~5,3! echo(!var1! > test.txt echo(!var1! ) else ( echo error ) del result 我在这里使用了构造 echo( 而不是 echo,因为这将确保即使变量为空也回显空行。 不确定这篇文章是否仍然被阅读,但无论如何。 您应该尝试以下操作: 在 @echo off 之后的代码顶部,您必须输入 setlocal enabledelayedexpansion 此外,在任何想要使用括号块中更改的变量(例如For-Loops或If's)的地方,您必须将%更改为!才能获得 !varname! 首先在你有这个批处理文件的同一目录中创建一个文件a.txt...在其中写入一些文本...注意:仅限Windows 2000 视窗ME 视窗XP 视窗Vista Windows 7 支持 FINDSTR set /p pattern=Enter id: findstr %pattern% a.txt > __query.tmp set /p result=<__query.tmp if %errorlevel%==0 ( set var2= %result% echo %var2% set var1= %var2:~5,3% echo %var1% > test.txt echo %var1% ) else ( echo error ) del __query.tmp pause 运行这个bath文件..您将在新创建的文件test.txt中找到a.txt中第一行字符串的子字符串(start = 5,length = 3)。终于成功了! 问题的解决方案是将“echo”放在 if 块完成之后。 试试这个: @ECHO off set /p pattern=Enter id: findstr %pattern% .\a.txt > result if %errorlevel%==0 ( set var2= <result set var1=%var2:~5,3% goto print ) else ( echo error goto result ) :print echo %var2% echo %var1% > test.txt echo %var1% :result del result pause 这样您就可以看到您想要的解决方案。 干杯! ;]

回答 5 投票 0

使用批处理文件删除所有浏览器的历史记录

我正在尝试在员工登录时使用批处理文件删除 IE、FireFox、Chrome 和 Opera 的历史记录。下面是我所拥有的并且它有效,但它也清除了 Chrom 的书签和首选项...

回答 1 投票 0

.bat 文件自行运行,但在计划任务调用时不运行

在我的备份服务器上,我有两个任务要运行:一个 SQL 转储和一个 SQL 导入,分别设置为在 01:00 和 02:00 运行。 转储每次都会在凌晨 1:45 之前创建一个压缩的 .SQL 文件。 进口是

回答 2 投票 0

在批处理文件上创建循环

我想在批处理文件上创建一个 while 循环。 该文件应重复运行以下两行(一行是 fortran 代码,另一行是 matlab): 主输出 matlab -batch“路径\matlab_code.m...

回答 1 投票 0

Windows 批处理脚本 VLOOKUP 输出帮助

数据文件1: 账户、部门、地点、金额 10000,DEPT_100,LOC_101,1000 20000,DEPT_200,LOC_200,2000 30000,DEPT_300,LOC_300,3000 40000,DEPT_400,LOC_400,4000 数据文件2: 帐户、部门、地点...

回答 1 投票 0

更改bat文件并运行

我想更改bat文件中的变量。 Bat 文件要求我插入用户名,例如 abcdef555,然后用它替换文本文件末尾的 wwwww 并将修改后的行作为命令运行。

回答 1 投票 0

通过Windows批处理文件查找并替换文本文件中以特定值开头的行

即使经过深入的谷歌搜索,我也无法解决我的问题。 有一个名为 test.txt 的文本文件。我需要的是使用批处理文件更改以“Root:”开头的行和其他内容。 ...

回答 1 投票 0

WMIC LastBootUptime格式问题,需要总天数

我正在尝试计算上次使用CMD重新启动计算机的时间。 但我不希望它采用年/月/日格式。 发送总天数、小时数和分钟数 这就是我所能做到的...

回答 1 投票 0

我的PowerShell脚本在从批处理文件或命令行打开时不起作用,但直接运行时却起作用

我正在尝试做的事情: 使用 .bat 文件调用 .ps1 文件(不要问)生成自签名证书和密钥对 (.pem),然后 .bat 文件会将每个 .pem 移动到新目录。 我什么

回答 1 投票 0

如何在另一个命令中使用命令的输出

我正在尝试编写一个批处理脚本,以使用 ffmpeg 从同一文件夹中的某些 mp4 中提取音频和视频,然后将它们重新合并到 mkv 中,但试图保留音频语言。 我有一个...

回答 1 投票 0

设置排除参数时,xcopy 返回错误“参数数量无效”

发行: xcopy X:\ "Y:\... in\9876543210\" /c /g /d /i /e /r /h /y 按预期工作。然而: xcopy X:\ "Y:\... in\9876543210\" /c /g /d /i /e /r /h /y /exclude:"Y:\... xinclude.txt" 返回...

回答 4 投票 0

是否可以递归删除WinSCP批处理文件中超过X天的文件? [已关闭]

我有一个脚本可以将文件从一台服务器传输到另一台服务器。 有了这个,我需要有一部分脚本来删除目标文件夹上超过 X 天的文件。 我检查了 WinSCP 文档...

回答 1 投票 0

更改批处理脚本导致 ffprobe 比特率读取失败

好的,这是一个使用 ffprobe 读取视频文件中使用的比特率的脚本。 @回声关闭 cd /d "%~dp0" 设置“清单=%~dpn0.txt” 设置“临时=%temp%\%~n0.tmp” :: ...

回答 2 投票 0

替换批处理文件中的部分字符串

第一篇文章!我寻找答案,但无法让它发挥作用。 我创建了一个批处理文件,要求用户提供项目信息,然后根据用户创建一组标准文件和文件夹......

回答 1 投票 0

如何修复错误“文件名、目录名或卷标语法不正确。”运行我的bat文件时?

我试图删除 C:\Users\%USERPROFILE%\AppData\Local\Temp 它显示错误: 文件名、目录名或卷标语法不正确。 这是代码: @回声关闭 德尔/s/q ...

回答 1 投票 0

用于将文件解压到目录中的 Windows 批处理脚本

我想解压某个目录下的所有文件,并保留解压时的文件夹名称。 以下批处理脚本并不能完全解决问题。它只是抛出一堆文件而不放置...

回答 5 投票 0

批量包含/排除所有行中第 n 个字符和第 n 个不同字符之间的文本

我想这样做: 使用 PowerShell 在所有行中包含/排除第 n 个字符和第 n 个不同字符之间的文本 但没有 PowerShell,即使用 Com 的批处理文件(.bat、.cmd)...

回答 1 投票 0

批处理脚本;当输入被馈送到变量时,希望从复制粘贴的用户输入中删除换行符

我有以下 .bat 脚本(隐藏了一些细节以隐藏敏感信息);目的是让用户运行脚本并能够粘贴一组帐户 ID(通常来自 Ex...

回答 1 投票 0

Java:Windows 上的 Runtime.exec() 和 Unicode 符号:如何使其能够处理非英文字母?

简介 我正在使用 Runtime.exec() 执行一些外部命令,并且使用包含非英语字符的参数。我只是想运行这样的东西: python test.py шалом 它...

回答 1 投票 0

有没有办法通过Windows Batch删除文件夹中小于一定宽度的所有图像?

我想编写一个简单的程序来将Windows聚光灯图像从它们所在的系统目录中提取到一个我可以更轻松地获取它们的文件夹中。到目前为止我有这个: @回声关闭 我...

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.