我的难题与以下链接的q/a线程有关:
我是这个论坛的新手,我有同样的问题,我使用的是Windows10,所以我使用了给出的关于如何使用WMIC的答案,它非常有效,除了一个我还没有弄清楚的问题.
我修改了foxidrive提供的脚本,如下所示:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set datestamp=%dt:~0,8%
set timestamp=%dt:~8,6%
set YYYY=%dt:~0
我在Windows 7上运行一个批处理文件,并遇到此错误(我已将错误范围缩小到以下行):
FOR /F "delims=" %%I in ('echo %RegVal%') do set sasroot=%%~sI
其中Regval是给定软件的文件路径,在本例中(在我的Win7机器上)是:
RegVal = C:\Program Files\SAS 9.2_M3_10w37\SASFoundation\9.2(32-bit)
这个脚本曾经在Windows Vista上有效,尽管我怀疑现在的RegVal中可能有一个括号,因为它是我以前的Vista机器上的以前的C
我试图从批处理文件中检查操作系统版本,但遇到以下问题。
这条线
FOR /F "tokens=*" %%i IN ('ver') DO (SET var=%%i)
从批处理文件执行时将冻结cmd,而命令ver本身(在同一批处理文件中)执行时没有问题。(ver具有以下输出。)
Microsoft Windows [Version 10.0.18362.356]
表达式中可能有什么错误?
我有以下批处理语句:
for /f "delims=" %%x in (file.lst) do set "offendingfile=%%x"
尽管出于一些非常奇怪的原因,当它被调用时,它会输出:
"C:\Windows\calc.exe "
而不是
"C:\Windows\calc.exe"
由于有一个尾随空格,我不能在批处理文件中的任何其他语句中正确使用它,有人知道它为什么这样做以及如何修复它吗,因为它让我发疯!
我最近发现了一种简单的方法,可以使用cmd.exe命令提供的/p选项在windows set批处理文件中获取用户输入。但是出于一个奇怪的原因,我不理解set /p在if语句之间使用时会有一些棘手的行为。
首先,创建一个名为"ScriptRunsOK.bat“的批处理文件,代码如下:
@echo off
rem Gets a User Yes-No Choice
set /p UserInput=Your Choice [Y/N]:
set UserChoice=%UserInput:~0,1%
if "%UserChoice%"=="y" set Us
我有这个批处理来比较两个文件的修改日期,这些文件在旧版本的Windows 10 '10.0.10240‘上工作得很好,但在稍微新的版本的Windows 10 '10.0.17134.1304’上却没有,那么这里我遗漏了什么呢?稍微新一点的Windows 10版本是否需要安装其他软件?
批处理文件如下:
@echo off
Set _File1="D:\Steam\steamapps\common\dota 2 beta\game\dota\bin\win64\client.dll"
Set _File2="D:\Programs\client.dll