我有一个Output.txt
文件,该文件有以下内容:搜寻所有数字字符串和分裂
Server1
APPNAME MEMORY
WINDOWS 54896378
LINUX 78542
MACOS 187963
Server2
APPNAME MEMORY
DATABASE 587412369
SCHEMA 78542
TABLESPACE 187963
我想创建一个批处理脚本,搜索在Output.txt的所有数值(如54896378,78542,78542等等),并将它们除以1024 * 1024,以便在BYTES的Newoutput.txt文件内存中将其更改为MB。
我试过以下,但没有得到我想要的:
@echo off
setlocal enabledelayedexpansion
for /F "delims= " %%a in ('findstr "[1-9][0-9]* 0"' Output.txt) do (
SET /A Result = %a/1024*1024 > Newoutput.txt
)
EDIT1:
当Output.txt
文件中有如下内容,那么一切工作正常,但剧本没有转换FreePhysicalMemory
值6621212只,即:
Output.txt:
Server1
APPNAME MEMORY
WINDOWS 54896378
LINUX 78542
MACOS 187963
FreePhysicalMemory TotalVisibleMemorySize
6621212 8387172
Newoutput.txt:
Server1
APPNAME MEMORY
WINDOWS 13.58
LINUX 2.45
MACOS 1.8
FreePhysicalMemory TotalVisibleMemorySize
6621212 21.4
什么样的变化,我们需要在脚本做..?
你首先不要在你的新文件中写入任何东西。你也不会对你获得的结果做任何事情。 – Ashalynd
批处理数学在2^31 -1以上,所以你不能处理2GB或更高的值。 – foxidrive