Batch file if else块在批处理文件中工作不正常

Batch file if else块在批处理文件中工作不正常,batch-file,Batch File,我已创建此批处理文件以搜索文件、命名文件、获取文件的版本并在文本文件中打印现有文件的路径。但是如果else块工作不正常。请帮助我,并提前表示感谢。:-) A)Set/p使用引号来允许长文件名,这是一种良好的做法。 B) 如果存在行中有相同原因的引号,加上该行末尾的括号 C) )其他(必须在一行上 @echo off set /p filename=please enter name of file..: echo "%filename%" ( echo %filename% if ex

我已创建此批处理文件以搜索文件、命名文件、获取文件的版本并在文本文件中打印现有文件的路径。但是如果else块工作不正常。请帮助我,并提前表示感谢。:-)

A)
Set/p
使用引号来允许长文件名,这是一种良好的做法。
B)
如果存在
行中有相同原因的引号,加上该行末尾的括号
C)
)其他(
必须在一行上

@echo off
set /p filename=please enter name of file..:

echo "%filename%"

(
 echo %filename% 
 if exist { C:\Windows\System32\%filename% }
 (
 wmic datafile where name="C:\\Windows\\System32\\%filename%" get version 
 wmic datafile where name="C:\\Windows\\System32\\%filename%" get path
 )
else
 (
 wmic datafile where name="C:\\Windows\\System32\\drivers\\%filename%" get version
 wmic datafile where name="C:\\Windows\\System32\\drivers\\%filename%" get path
 )



) >output.txt

start notepad.exe output.txt
A)
Set/p
使用引号允许长文件名,这是一种良好的做法。
B)
如果存在
行中有相同原因的引号,加上该行末尾的括号
C)
)其他(
必须在一行上

@echo off
set /p filename=please enter name of file..:

echo "%filename%"

(
 echo %filename% 
 if exist { C:\Windows\System32\%filename% }
 (
 wmic datafile where name="C:\\Windows\\System32\\%filename%" get version 
 wmic datafile where name="C:\\Windows\\System32\\%filename%" get path
 )
else
 (
 wmic datafile where name="C:\\Windows\\System32\\drivers\\%filename%" get version
 wmic datafile where name="C:\\Windows\\System32\\drivers\\%filename%" get path
 )



) >output.txt

start notepad.exe output.txt

{
}
替换为
。将
{
}
替换为
。对所需更改的解释也会有所帮助,而不仅仅是一堆代码code@SmokeyPHP是的,我的陛下。;)Crackin'-如果OP只是复制并粘贴全部内容,他们将什么也学不到。对错误和需要更改的内容的描述将防止他们在10分钟内提出类似的问题minutes@smokeyPHP. 谢谢你的回复。我只想知道,如果system32文件夹中存在一个文件,那么代码应该跳过else块,但实际上它不会发生。此外,我还想对代码进行概括,以搜索windows中所有文件夹中的任何文件。请尝试上面的代码-查看两个新的echo语句。您会发现它只执行一个块。对所需更改的解释也会很有帮助,而不仅仅是一个块code@SmokeyPHP是的,陛下Crackin’——如果OP只是复制并粘贴全部内容,他们将什么也学不到。对错误和需要更改的内容的描述将防止他们在10分钟内提出类似的问题minutes@smokeyPHP. 谢谢你的回复。我只想知道,如果system32文件夹中存在一个文件,那么代码应该跳过else块,但实际上它不会发生。此外,我还想对代码进行概括,以搜索windows中所有文件夹中的任何文件。请尝试上面的代码-查看两个新的echo语句。您会发现它只执行一个块。