gpt4 book ai didi

windows - 从cmd解析数据

转载 作者:可可西里 更新时间:2023-11-01 11:18:01 24 4
gpt4 key购买 nike

我一直在尝试使用“网络时间”实用程序来获取网络上另一台机器的时间(由于各种原因我无法使用现有的 Windows 服务)。它正在获取正确的数据,但没有将其正确保存到变量中。我已经编写了一些代码来展示我遇到的问题。

::@ECHO off

for /f "tokens=1-2,6,7,8" %%i in ('net time \\A13027-07T9') do (
if "%%i %%j"=="Current time"( set d=%%k set t=%%l set AP=%%m)
)

echo %d%
echo %t%
echo %AP%

PAUSE

任何帮助将不胜感激

最佳答案

问题是您试图将 3 个 set 命令塞进一行。您要么需要用 & 将它们分开,要么将它们各自放在一行。

正如 Stephan 指出的那样,使用 find 也可以让您的代码看起来更简洁一些。

无论如何,正确的缩进和代码格式有助于避免像这样的简单错误。

@ECHO off
setlocal

for /f "tokens=6-8" %%i in ('net time \\A13027-07T9 ^| find "Current"') do (
set "d=%%i"
set "t=%%j"
set "AP=%%k"
)

echo %d%
echo %t%
echo %AP%

PAUSE

或者,如果您不想使用 find 并希望将您的 set 保持在同一行:

@ECHO off
setlocal

for /f "tokens=1-2,6-8" %%i in ('net time \\A13027-07T9') do (
if /i "%%i %%j"=="Current time" ( set "d=%%k" & set "t=%%l" & set "AP=%%m" )
)

echo %d%
echo %t%
echo %AP%

PAUSE

就我个人而言,我发现第一个版本更具可读性。

关于windows - 从cmd解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com