我需要测试是否设置了变量.我已经尝试了几种技术,但他们忽视了,只要%1用双引号包围时,如情况%1是"c:\some path with spaces".
IF NOT %1 GOTO MyLabel // This is invalid syntax
IF "%1" == "" GOTO MyLabel // Works unless %1 has double quotes which fatally kills bat execution
IF %1 == GOTO MyLabel // Gives an unexpected GOTO error.
Run Code Online (Sandbox Code Playgroud)
根据此站点,这些是受支持的IF语法类型.所以,我没有办法做到这一点.
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
Run Code Online (Sandbox Code Playgroud) 我知道该color bf命令设置整个命令行窗口的颜色,但我想以不同的颜色打印一行.
在批处理文件中,我有一个字符串abcdefg.我想检查是否bcd在字符串中.
不幸的是,似乎我找到的所有解决方案都搜索子文件的文件,而不是子字符串的字符串.
有一个简单的解决方案吗?
我想获取当前正在运行的批处理文件的名称,没有文件扩展名.
感谢这个链接,我的文件名带有扩展名......但是在批处理文件中执行子字符串的最佳方法是什么?
或者是否有其他方法来获取没有扩展名的文件名?
在这种情况下,可以安全地假设3个字母的扩展名.
是否可以在Windows 7(或者甚至是XP)中从命令提示符处在系统级别设置环境变量.我从一个提升的命令提示符运行.
当我使用setcommand(set name=value)时,环境变量似乎仅对命令提示符的会话有效.
Windows FINDSTR命令可怕地记录在案.有一个非常基本的命令行帮助可用FINDSTR /?,或者HELP FINDSTR,但是它非常不合适.在https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/findstr上有更多的在线文档.
有许多FINDSTR功能和限制甚至在文档中都没有暗示.如果没有先前的知识和/或仔细的实验,他们也无法预料到.
所以问题是 - 未记录的FINDSTR功能和限制是什么?
此问题的目的是提供许多未记录的功能的一站式存储库,以便:
A)开发人员可以充分利用那里的功能.
B)开发人员不要浪费时间,想知道为什么某些东西看起来不应该起作用.
在回复之前,请确保您知道现有文档.如果HELP涵盖了这些信息,则它不属于此处.
这也不是展示FINDSTR有趣用途的地方.如果逻辑人员可以根据文档预测FINDSTR的特定用法的行为,那么它不属于此处.
同样,如果逻辑人员可以基于任何现有答案中包含的信息预测特定用法的行为,那么再次,它不属于此处.
我有一组基本文件名,每个名称'f'都有两个文件,'f.in'和'f.out'.我想编写一个批处理文件(在Windows XP中),它通过所有文件名,每个文件名应该:
除了搜索*.in(或*.out)之外,我没有办法列出基本文件名集.
我试图在PowerShell中运行此脚本.我已将以下脚本保存在ps.ps1桌面上.
$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2"
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"}
Run Code Online (Sandbox Code Playgroud)
我已经制作了一个批处理脚本来运行这个PowerShell脚本
@echo off
Powershell.exe set-executionpolicy remotesigned -File C:\Users\SE\Desktop\ps.ps1
pause
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:

说,如果我有
如何异步运行批处理文件中的所有这些,即无需等待以前的程序停止?
在Windows(Windows XP)批处理脚本中,我需要格式化当前日期和时间,以便以后在文件名中使用等.
它类似于Stack Overflow问题如何在批处理文件中附加日期,但也有时间.
到目前为止我有这个:
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%
Run Code Online (Sandbox Code Playgroud)
这使:
28/07/2009
8:35:31.01
2009_07_28__ 8_36_01
Run Code Online (Sandbox Code Playgroud)
有没有办法允许%TIME%的单个数字小时,所以我可以得到以下内容?
2009_07_28__08_36_01
Run Code Online (Sandbox Code Playgroud) batch-file ×10
windows ×6
cmd ×5
command-line ×2
shell ×2
substring ×2
colors ×1
datetime ×1
findstr ×1
formatting ×1
powershell ×1
windows-xp ×1