我有一个输出
的备份脚本 Backup %DIRNAME% %TIME% >>Results.txt
这看起来像:
备份B:\ Backup \ Documents 92
现在我想知道我如何只提供完成时间的输出
我试过了
FINDSTR /r "^[1-9][0-9]*$ ^0$" results.txt
但这没有任何作用 我知道这是有效的,因为如果我使用rand num创建一个rand.txt,findstr输出该文件中的内容。 也许文件中最后一个条目有一个
喜欢FINDSTR "[1-9][0-9]\.$" results.txt
- 后来在命令提示符中我们可以做到
FOR /F "eol=; tokens=3* delims=, " %i in (results.txt) do @echo %j %k
实际上可以像
一样简单 FOR /F " tokens=3* delims=, " %I in (results.txt) do @echo %I>timeresult
type timeresult
这也意味着我们可以将随机结果连接到.txt,但是我们想要在开始时记住不要放置的结果。
仍然将其格式化为批处理?
还出现了一个新问题,如何将其置于变量中?
我的猜测是
FOR /F "eol=; tokens=3* delims=, " %i in (results.txt) do ( set result= %j %k
已经回答了: 是的,回答了我自己的问题...... 不知道为什么我试图使事情复杂化。
因此,此抓取令牌3在结果中为时间设置var T,然后使可用的变量稍后
FOR / F“tokens = 3”%% T in(results.txt)do(set vartmp = %% T)
令人惊讶的是,当你走开,喝咖啡,做其他事情时会发生什么。你就是为什么......我不是那么打字。
感谢大家的评论,很高兴看到其他人的想法和意见,赞赏。
答案 0 :(得分:0)
这将在行
上给出最后一组数字type Results.txt|repl "^.* (\d+).*$" "$1" >newfile.txt
这使用名为repl.bat
的帮助程序批处理文件 - 从https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat
将repl.bat
放在与批处理文件相同的文件夹中或放在路径上的文件夹中。
根据评论编辑:
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
FOR /f "delims=" %%a IN (q21446192.txt) DO CALL :lastnum %%a
GOTO :EOF
:lastnum
SET "elapsed=%~2"
IF DEFINED elapsed shift&GOTO lastnum
SET "elapsed=%~1"
SET /a total=0
:numlp
FOR /l %%n IN (0,1,9) DO IF "%elapsed:~0,1%"=="%%n" SET /a total=%%n+10*total&SET elapsed=%elapsed:~1%&GOTO numlp
if "%elapsed%"=="%~1" GOTO :eof
ECHO %total%
GOTO :eof
我使用名为q21446192.txt
的文件进行测试,其中包含您提供给我们的一个数据项。它产生了92
%time%
是一个神奇的变量。 CMD
会将其设置为用户格式的当前时间,但会被用户设置的变量覆盖。它被认为是SO的默认值。