首先,这是另一个问题的解决方法,但是为了不使这个问题复杂化,我不会进入原始方法。
现在我正在尝试使用批处理文件:
文本文件的名称作为参数提供给批处理文件。 一切似乎都有效,除了当我试图包含一个IF语句时,它只是没有返回任何结果。
有人可以告诉我做错了什么吗? - 试图遵循这里的指导:http://ss64.com/nt/if.html但显然没有成功!
@ECHO off
setlocal EnableDelayedExpansion
for /f "delims=" %%x in (%1) do (
set "previous=!last!"
set "last=%%x"
)
IF !last! == "EXPORT completed successfully" ECHO 1 ELSE ECHO 0
如果最后一行改为ECHO!last!它正确返回成功完成的字符串EXPORT。我用&尝试了上面的代码没有引号但没有成功。
任何帮助都会受到赞赏,因为我之前从未使用过批次。
由于
答案 0 :(得分:0)
你非常接近!请注意,我在IF和ELSE子句中添加了括号。我还在last
附近添加了引号。
最后,请记住批量处理IF ... ELSE周围的空白实际上很重要 - 有关详细信息,请参阅this answer。
@ECHO off
setlocal EnableDelayedExpansion
for /f "delims=" %%x in (%1) do (
set "previous=!last!"
set "last=%%x"
)
IF "!last!" == "EXPORT completed successfully" (
ECHO 1
) ELSE (
ECHO 0
)
ECHO !last!
答案 1 :(得分:0)
我认为使用set
命令在命令行中设置值时,应使用%
引用此变量。例如:
@echo off
cls
:loop
rem DO SOMETHING
set /p userinp=Repeat (y,n)?
if "%userinp%" == "y" (goto loop)
pause
此批处理执行某些操作,然后询问用户是否需要使用userinp
变量重复该过程。希望这会有所帮助。