for /f "tokens=3-4 delims=. " %%i in ('ver') do ( IF "%%j" == "6" (set os=vista) ELSE (set os=xp) IF "%%j" == "10" (set os=vista) ) echo on goto osver_%os% :osver_xp C: cd c:\egmain-lx\bin :EXE for %%i in (*.exe) do %%i /unregserver
时间: 2024-04-28 12:25:58 浏览: 15
这是一段 Windows 系统的批处理脚本,用于检测操作系统版本并执行相应的命令。其中,通过 ver 命令获取系统版本号,并根据版本号的第二个数字判断操作系统类型(6 为 Vista 及以上版本,10 为 Windows 10),然后设置变量 os 的值。接着,使用 goto 命令跳转到对应的标签 osver_%os%,也就是 osver_vista 或 osver_xp,分别执行不同的命令。在这里,osver_xp 标签下的命令是切换到 C 盘根目录,然后执行 c:\egmain-lx\bin 目录下所有可执行文件的 /unregserver 参数。
相关问题
REM 获取当前日期 for /f "tokens=1-3 delims=/ " %%a in ('echo %date%') do ( set "day=%%a" set "month=%%b" set "year=%%c" )
这段代码是用于获取当前日期,并将结果分别存储在`day`、`month`和`year`这三个变量中。
在这个代码块中,使用`for /f`命令来处理输出的日期字符串。具体的解析方式如下:
- `tokens=1-3`指示将日期字符串分割成三个部分,分别存储在`%%a`、`%%b`和`%%c`这三个变量中。
- `delims=/`指定日期字符串中的分隔符为斜杠`/`和空格,以便正确分割日期的不同部分。
- `'echo %date%'`是一个命令,用于输出当前日期字符串。该命令的输出将被`for /f`命令读取并进行解析。
解析后,将得到的日期部分分别存储在`day`、`month`和`year`这三个变量中。
请注意,在不同的操作系统和区域设置下,日期字符串的格式可能会有所差异。因此,如果您发现日期解析不正确,请根据您的操作系统和日期格式进行适当的调整。
希望能对您有所帮助!如果有其他问题,请随时提问。
for /f "tokens=1-3 delims=: " %a in ("%time%") do set /a hours=%a+1 & set "time=%hours%:%b%:%c",time没有获取到时间中的小时信息
这是一个 Windows 命令行脚本,用于获取当前时间并将其小时加一。但是您说“time没有获取到时间中的小时信息”,我猜想您遇到了问题。
在Windows命令行中,`time`是一个系统变量,表示当前时间。而在上面的脚本中,`time`被定义为一个变量名,这会导致混淆。为了解决这个问题,可以将变量名改为其他名称,比如`mytime`。
修改后的脚本如下所示:
```batch
for /f "tokens=1-3 delims=: " %%a in ("%time%") do set /a hours=%%a+1 & set "mytime=%hours%:%%b:%%c"
echo %mytime%
```
在上面的脚本中,我们将变量`time`改为了`mytime`,并使用`%%a`代替`%a`来避免与系统变量`time`混淆。现在,脚本应该可以正确地获取当前时间并将其小时加一了。