我试图在另一个exe成功执行的条件下有条件地从批处理文件中运行exe.
我尝试了几种不同的IF和ERRORLEVEL组合,但似乎都没有效果
"..\..\..\TeamBuildTypes\Current Branch\DatabaseUpdate.exe" -s localhost\sql2008r2
IF %ERRORLEVEL% 1(
"..\..\..\TeamBuildTypes\Current Branch\DatabaseUpdate.exe" -s localhost\sql2008
)
Pause
Run Code Online (Sandbox Code Playgroud)
给我错误
1(此时出乎意料.
我在哪里错了?
假设有以下批处理文件
set variable1=this is variable1
set variable2=is
set variable3=test
if variable1 contains variable2 (
echo YES
) else (
echo NO
)
if variable1 contains variable3 (
echo YES
) else (
echo NO
)
Run Code Online (Sandbox Code Playgroud)
我希望输出为YES,然后是NO
我需要找出一个特定的环境变量(让我们说Foo)在一个Windows批处理文件中是否包含子字符串(比如说BAR).有没有办法只使用批处理文件命令和/或默认安装的程序/命令与Windows?
例如:
set Foo=Some string;something BAR something;blah
if "BAR" in %Foo% goto FoundIt <- What should this line be?
echo Did not find BAR.
exit 1
:FoundIt
echo Found BAR!
exit 0
Run Code Online (Sandbox Code Playgroud)
上面标记的行应该使这个简单的批处理文件打印"Found BAR"?
我正在尝试检查批处理文件中的变量是否以"
包含BETA
某个地方开头并以其结尾")
.
可能吗?如果是的话,有人可以帮助我吗?
这听起来很愚蠢,但我无法让它发挥作用.我想我只是不明白它们之间的区别%%v, %v% and %v
这是我正在尝试做的事情:
for %%v in (*.flv) do ffmpeg.exe -i "%%v" -y -f mjpeg -ss 0.001 -vframes 1 -an "%%v.jpg"
Run Code Online (Sandbox Code Playgroud)
这会成功为每部电影生成缩略图,但问题是:
movie.flv -> movie.flv.jpg
Run Code Online (Sandbox Code Playgroud)
所以我想做的是关闭最后4个字符%%v
并将其用于第二个变量.
我一直在尝试这样的事情:
%%v:~0,-3%
Run Code Online (Sandbox Code Playgroud)
但它不起作用,也没有任何我能想到的迭代.
有任何想法吗?
我有以下代码
if "%userInput%"==""" (
do_something
)
Run Code Online (Sandbox Code Playgroud)
我想检测它是否%userInput%
是引号("
).但是,此代码会引发错误.
如何检测输入是否为引用?
我最近在文章“ 查找子字符串是否在字符串中(而不是在文件中)”中发现
@setlocal enableextensions enabledelayedexpansion
@echo off
set str1=%1
if not x%str1:bcd=%==x%str1% echo It contains bcd
endlocal
Run Code Online (Sandbox Code Playgroud)
然后
在
x
平等的双方之前是要确保字符串bcd
工作好。它还可以防止某些“不合适的”起始字符。
但是,我还没有找到关于this实际效果的任何解释x
。那么x"%string%"
和之间有什么区别"%string%"
?
在Windows批处理文件中,我有一个字符串'abcdefg'.我想检查字符串中是否有'bcd',但我也希望每个都在变量中,或传入字符串的参数.
这个解决方案很接近,但使用的是常量而不是变量. 批处理文件:查找substring是否在字符串中(不在文件中)
我有一个批处理文件,它将目录路径作为参数.
在该文件夹中,我需要转换为jpg的任意数量的.ai.pdf或.pdf文件.转换不是我的问题(我正在使用imageMagick),但删掉完整的扩展名是.
我需要能够从文件名中取出完整的.ai.pdf(7个字符)或.pdf(4个字符)并将其替换为.jpg我不能在for循环中使用~n因为它不会在一个实例中取出.ai.有一个.ai.pdf(结果是文件名.我只需要文件名)
关于此StackOverFlow示例,StackOverFlow上有相当多的帖子
但无论我尝试尝试什么,我都会在截断文件名的适当数量的扩展名时出错.
这是我的代码.这是我创建的第一个主要批处理文件,所以除了安装更多程序以完成工作外,我对任何事情都持开放态度.
杀死我的是,我有这个工作,从一个服务器到另一个服务器的洗牌和一个星期的休假,工作代码......错位了.
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set dir1=%1
echo recieved !dir1!
for /R %dir1% %%a in (*.pdf) DO (
echo file found !a!
set b=th_%%~nxa
if x%b:ai.pdf=%==x%b% set b=%%~dpa!b:~0,-7!
if not x%b:ai.pdf=%==x%b% set b=%%~dpa!b:~0,-4!
REM convert -density 64 "%%a" +matte -resize 15%% "!b!.jpg"
@echo !b! converted
)
ENDLOCAL
Run Code Online (Sandbox Code Playgroud)
该文件告诉我 %~dpa!b:~0,-7!是无效的替代
有任何想法吗?谢谢您的帮助!
batch-file ×9
windows ×4
string ×3
cmd ×2
if-statement ×2
command-line ×1
equals ×1
findstr ×1
substring ×1