有一个 txt 文件,其中包含如下所示的值。文件编码 1251。如何从文件的每一行中删除一个空格字符,知道其<A0>
在 1251 编码中的代码?使用 bat 文件。Windows 控制台编码为 866。
输出应该是这种文件。
通过手段删除空格SET variable=!variable: =!
不起作用。
现在脚本看起来像这样。
@ECHO OFF
chcp 1251
SetLocal EnableDelayedExpansion
erase lb_2_task_1_boofer_1.txt
erase lb_2_task_1_PID.txt
erase lb_2_task_1_MEM.txt
tasklist /NH /FO csv /FI "imagename eq chrome.exe" > lb_2_task_1_boofer_1.txt
SET FILE=lb_2_task_1_boofer_1.txt
SET MAX_PROGRAM_MEM=50000
FOR /F "tokens=1-5 delims=," %%a IN (%FILE%) do (
SET PID=%%b
SET PID=!PID:~1,-1! :Убрал кавычки для PID
SET MEM=!PID: =! :Убрал все пробелы
@ECHO !PID!>>lb_2_task_1_PID.txt :Вывел в файл
SET MEM=%%e
SET MEM=!MEM:~1,-3! :Убрал кавычку в начале и кавычку КБ и пробел сзади
:SET MEM=!MEM: =! :Для удаления пробела между 108 792 это не подходит
:@ECHO !MEM!
@ECHO !MEM!>>lb_2_task_1_MEM.txt
)
PAUSE
代码为 0xA0 的字符不是 [常规] 空格,空格的代码为 0x20。
因此,您可以尝试这样做
SET MEM=!MEM:<Alt+(0160)>=!
,其中 <Alt+(0160)> 是在按 Alt 时在 NumPad 上键入的数字 0160。例子:
我有它显示如下:
实际上,我猜为什么所有这些文件和编码的混乱。
但我认为,如果给出以下初始条件:
使用任务列表实用程序;
以 KB 为单位获取内存参数(即不超过 15 个字符的字符串。
原则上不需要创建临时文件。一切都可以塞进几个嵌套循环中。第一个循环检索内存大小列的值。在第二个中 - 仅提取数字。