检查文件是否存在

发布于 2024-11-30 12:18:25 字数 272 浏览 1 评论 0 原文

我有以下蝙蝠,但它似乎不起作用我想检查 tom.txt 中存储的文件名,如果它存在我不想执行任何操作,但如果它不存在我想运行 runme.bat

Echo Setting variable to file name
set FAT=<C:\tom.txt

ECHO Checking for file, if exists do nothing if not run bat...
if exists %FAT% (
end
)else(
 C:\runme.bat
)

I have the following bat but it dosnt seem to work I want to check for a file name stoted in tom.txt, if it exists i want to do nothing, if however it dont exist i want to run the runme.bat

Echo Setting variable to file name
set FAT=<C:\tom.txt

ECHO Checking for file, if exists do nothing if not run bat...
if exists %FAT% (
end
)else(
 C:\runme.bat
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

水晶透心 2024-12-07 12:18:25

有一些小错误,但却是造成你重大困难的原因。

  1. 您可以使用 SET /P 命令从文件中读取一行,而不仅仅是使用 SET

    SET /P FAT=
  2. 文件中的关键字存在检查命令是 EXIST,而不是 EXISTS

    如果存在...
    

    此外,如果您只需要对文件的不存在做出反应,则只需添加NOT

    如果不存在...
    

    所以,整个命令可能是这样的:

    如果不存在 %FAT% C:\runme.bat
    

There are some minor mistakes, which, however, are the cause of your major difficulties.

  1. You can read a line from a file with the SET /P command, not simply with SET:

    SET /P FAT=<C:\tom.txt
    
  2. The keyword in the file existence check command is EXIST, not EXISTS

    IF EXIST …
    

    Also, if you only need to react to the file's non-existence, you can simply add NOT:

    IF NOT EXIST …
    

    So, the entire command might be like this:

    IF NOT EXIST %FAT% C:\runme.bat
    
紫罗兰の梦幻 2024-12-07 12:18:25

我相信正确的语法是

if exist %FAT% goto NORUN
C:\runme.bat
:NORUN

注意代码中的“exist”与“exists”。其他需要注意的事项:

  1. 文件 NUL 存在于任何驱动器上的任何目录中,因此请检查
    for C:\NUL 将始终返回 true。
  2. 检查文件是否存在
    并不总是在网络设备上正常工作。

请参阅 http://support.microsoft.com/kb/65994 了解更多信息。

I believe the correct syntax is

if exist %FAT% goto NORUN
C:\runme.bat
:NORUN

Notice "exist" vs "exists" in your code. A couple other things to note:

  1. File NUL exists in any directory on any drive, therefore checking
    for C:\NUL will always return true.
  2. Checking for file existence
    does not always work correctly on network devices.

See http://support.microsoft.com/kb/65994 for a bit more information.

拍不死你 2024-12-07 12:18:25

我认为最简单的解决方案是在一行上完成所有操作,如下所示:

IF NOT EXIST C:\tom.txt C:\runme.bat

除非您打算再次使用该变量,否则不需要该变量,它只是意味着另一行代码。正如 Aleks G 和 Andriy M 所说,您需要确保命令和参数拼写正确。

I think the simplest solution would be to do it all on one line like this:

IF NOT EXIST C:\tom.txt C:\runme.bat

There is no need for the variable unless you intend on using it again, it just means another line of code. As Aleks G and Andriy M said, you need to make sure the commands and parameters are spelt correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文