2014-01-30 96 views
0

我有输出批处理脚本 - FINDSTR最终结果?

Backup %DIRNAME% %TIME% >>Results.txt 这看起来像一个备份脚本:

备份B:\备份\文件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套变种T代表时间的结果,然后使可用可变后

FOR/F “令牌= 3” %% T IN(RESULTS.TXT)DO(设置vartmp = %% T)

当你走开,抓起一杯咖啡,做一些其他的事情时,会发生什么惊人的事情。你就是为什么......我没有输入那个。

谢谢各位的意见,很高兴看到别人的想法和意见,很感谢。

+0

首先要做的是澄清你所说的“只从时间输出”的意思。也许如果你会说出'%time%'使用什么格式以及你想要制作什么样的格式,我们可以更好地协助。 – Magoo

+0

从备份2的输出是 备份B:\备份\文件92秒 这是从一个不同的脚本 然后我被想要做一个 在('FINDSTR/R“^ [1-9的输出] [0-9] * $^0 $” RESULTS.TXT')做(组结果= %% VAR?) 然后通向另外一个我还没有想出。 〜发现设置到一个变量的字符串,所以我可以用 采取上次使用的文档回波时间备份%bkResultTime% – Abberix

回答

0

这会给上线

type Results.txt|repl "^.* (\d+).*$" "$1" >newfile.txt 

这将使用名为repl.bat一个辅助批处理文件的最后一组数字 - 从下载:https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

repl.bat在同一文件夹中的批处理文件或在路径上的文件夹中。

根据评论编辑:

+0

我喜欢repl.bat的努力,但不幸的是它在RESULTS.TXT – Abberix

+0

返回相同的数据,我注意到您的回复评论有'92秒',除非你误用了时间变量名,否则没有办法从'%time%'中得到它。在你的文件中的时间格式需要知道,与空间等。 – foxidrive

+0

我不好,对不起%的时间%的这显然改变了完成的时间现在%timetakentocomple%的实际时间是%日期%与它连接的时间。我从新想通了,比如我想尝试,我可以做FOR/F “令牌= 2,3 * delims =” %i的(RESULTS.TXT)做@echo引用%j%K,但我该怎么办把这个和var一起工作(更新的原始问题) – Abberix

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上的默认值。