相关疑难解决方法(0)

批处理文件测试错误级别

我试图在另一个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(此时出乎意料.

我在哪里错了?

error-handling batch-file

18
推荐指数
2
解决办法
8万
查看次数

如何检查变量是否包含Windows批处理文件中的另一个变量?

假设有以下批处理文件

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

windows batch-file

16
推荐指数
2
解决办法
2万
查看次数

找出环境变量是否包含子字符串

我需要找出一个特定的环境变量(让我们说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"?

windows batch-file

15
推荐指数
2
解决办法
3万
查看次数

Windows批量检查变量是否以,以...结尾并包含特定字符串

我正在尝试检查批处理文件中的变量是否以"包含BETA某个地方开头并以其结尾").

可能吗?如果是的话,有人可以帮助我吗?

windows cmd if-statement equals batch-file

9
推荐指数
2
解决办法
3万
查看次数

如何在for循环中对变量执行字符串操作?

这听起来很愚蠢,但我无法让它发挥作用.我想我只是不明白它们之间的区别%%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)

但它不起作用,也没有任何我能想到的迭代.

有任何想法吗?

string command-line batch-file

8
推荐指数
3
解决办法
3万
查看次数

如何检测输入是否引用?

我有以下代码

if "%userInput%"==""" (
    do_something
)
Run Code Online (Sandbox Code Playgroud)

我想检测它是否%userInput% 引号(").但是,此代码会引发错误.

如何检测输入是否为引用?

cmd if-statement batch-file special-characters

3
推荐指数
2
解决办法
1214
查看次数

Windows批处理文件中的IF条件下的“ ...”和x“ ...”之间有什么区别?

我最近在文章“ 查找子字符串是否在字符串中(而不是在文件中)”中发现

@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%"

string batch-file

3
推荐指数
2
解决办法
1278
查看次数

批处理文件:查找子字符串是否在字符串中(不在文件中)第2部分 - 使用变量

在Windows批处理文件中,我有一个字符串'abcdefg'.我想检查字符串中是否有'bcd',但我也希望每个都在变量中,或传入字符串的参数.

这个解决方案很接近,但使用的是常量而不是变量. 批处理文件:查找substring是否在字符串中(不在文件中)

string substring batch-file findstr batch-processing

2
推荐指数
1
解决办法
3万
查看次数

循环字符串替换的批处理文件

我有一个批处理文件,它将目录路径作为参数.

在该文件夹中,我需要转换为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!是无效的替代

有任何想法吗?谢谢您的帮助!

windows batch-file

1
推荐指数
1
解决办法
8995
查看次数