Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何以一种好的格式获取文件戳?_Batch File_Timestamp - Fatal编程技术网

Batch file 如何以一种好的格式获取文件戳?

Batch file 如何以一种好的格式获取文件戳?,batch-file,timestamp,Batch File,Timestamp,网络大师。 我在尝试输出此批处理文件的美观格式时遇到问题: 这一批可以正常工作,但速度很快,脏兮兮的: 每台机器都会打印大量无用信息: 我的问题是: 有一种方法可以得到一个好的日志吗? .即: 提前感谢以下批处理脚本应按预期工作: @(对于/F“UseBackQ Delims=”%A In(“C:\temp\machine\u list.txt” )Do@For/F EOL^=^^Delims^=%%B In('Dir/A“\\\%%A\C$\Logs\filelog.txt“) )执行

网络大师。 我在尝试输出此批处理文件的美观格式时遇到问题:



这一批可以正常工作,但速度很快,脏兮兮的: 每台机器都会打印大量无用信息:



我的问题是:

有一种方法可以得到一个好的日志吗? .即:


提前感谢

以下批处理脚本应按预期工作:

@(对于/F“UseBackQ Delims=”%A In(“C:\temp\machine\u list.txt”
)Do@For/F EOL^=^^Delims^=%%B In('Dir/A“\\\%%A\C$\Logs\filelog.txt“)
)执行@Echo%%A%%B)>“C:\temp\Log.txt”
我不会解释它是如何工作的,但重要的部分是嵌套的
For
循环。它按预期运行
Dir
命令,但忽略以字符空间开头的所有行。这是通过使用一种看似奇怪但有效的语法,将行尾,
EOL
设置为该字符来完成的

编辑

也许这将达到你最近评论的目的:

@Echo关闭
对于/F“UseBackQ Delims=“%%A In”(“C:\temp\machine\u list.txt”)Do(
如果存在“\\%%A\C$\Logs\”(
对于('Dir/A“\\%%A\C$\Logs\filelog.txt“')中的/F EOL^=^^^^^^^^^^ Delims^=%%B,请执行>>“C:\temp\Log.txt”Echo%%A%%B
)Else>>“C:\temp\Log\u error.txt”Echo%%A)
编辑2

这是一个进一步修改的示例,希望能够更好地记录错误:

@Echo关闭
对于/F“UseBackQ Delims=“%%A In”(“C:\temp\machine\u list.txt”)Do(
如果存在“\\%%A\C$\Logs\filelog.txt”(
(对于/F下线^=^^^^=%%B英寸(
'Dir/A“\\%%A\C$\Logs\filelog.txt”'
)是否回显%%A%%B)>>“C:\temp\Log.txt”)其他内容((
如果不存在“\\%%A\C$\”Echo%%A无法访问
Echo%%A缺少filelog.txt)>>“C:\temp\ErrLog.txt”))

正如我所说,它工作正常。现在我面临着如何管理cmd shell中刚刚打印的错误文本:系统无法找到指定的文件。找不到网络路径。访问被拒绝。目标帐户名不正确。你有什么建议吗?
If Exist
语句可能会有所帮助:
@(对于/F“UseBackQ Delims=”%A In(“C:\temp\machine\u list.txt”)Do@If Exist“\\\%%A\C$\Logs\”For/F EOL^=^^Delims^=%B In('Dir/A“\\%%A\C$\Logs\filelog.txt”)Do@Echo%%A%%A%%B>“C:\temp\Log.txt”
。如果我能解密(:)你的脚本,您只管理脚本可以在其中搜索的计算机。如果同时我想管理错误,我应该在“Echo%%A>“C:\temp\Log\u error.txt”中添加类似“在”如果不存在“\\%%A\C$\Logs\”的内容是否正确?thanks@Romeo,我在我的答案中添加了一个编辑部分作为进一步的帮助。我太笨了,不适合批处理…:-(.@Echo Off For/F“UseBackQ Delims=“%A In”(“C:\temp\machine\u list.txt”)Do(如果存在“\\%A\C$\Logs\”)(For/F EOL^=^^^^Delims^=%B In('Dir/A“\\\%A\C$\Logs\filelog.txt”)Do>“C:\temp\Log.txt”Echo%%A%%B)Else(Echo%%A>“C:\temp\tmpmachine.txt”set/p machine=“C:\temp\tmperor.txt”2>>“C:\temp\Log\u error.txt”))
@echo off
setLocal EnableDelayedExpansion

for /f "tokens=*" %%G in (c:\temp\machine_list.txt) do (
    echo %%G
    echo %%G >> c:\temp\Log.txt
    dir "\\%%G\C$\Logs\filelog.txt" /A >> c:\temp\Log.txt
    )
Machine_id
 Volume in drive \\Machine_001\C$\Logs is System
 Volume Serial Number is 0271-2533

 Directory of \\Machine_001\C$\Logs

14.03.2018  11:33             7'722 filelog.txt
               1 File(s)          7'722 bytes
               0 Dir(s)  347'223'621'632 bytes free
Machine_id1    14.03.2018  11:33             7'722 filelog.txt
Machine_id2    14.03.2018  11:33             7'722 filelog.txt
Machine_id3    14.03.2018  11:33             7'722 filelog.txt