gpt4 book ai didi

windows - 如何检查路径的目标是否是目录?

转载 作者:可可西里 更新时间:2023-11-01 14:44:18 25 4
gpt4 key购买 nike

如何检查给定路径的目标是否为目录?

说:

rem all these should work (by X: I mean a mapped UNC path)
set somepath=some\path
set somepath=c:\some\path
set somepath=x:\some\path
set somepath=\\server\some\path
set isdir=

rem now do some extremely complicated black magic to set %isdir%

if not _%isdir%_==__ (
rem do the directory thing
)

它应该适用于尽可能多的情况:

  • 在 Windows NT 上(即不是 Vista+ 的东西)。
  • 具有 UNC 路径和本地路径
  • 路径中有空格
  • 末尾有或没有反斜杠
  • 如果无法访问内容

在极端情况下,例如无法告知(权限),回退值可以是不,它不是目录

最佳答案

试试这个 advice from Microsoft :

You cannot use the if command to test directly for a directory, but the null (NUL) device does exist in every directory. As a result, you can test for the null device to determine whether a directory exists. The following example tests for the existence of a directory:

if exist c:\mydir\nul goto process'

对于 UNC 路径,我想出了:

@echo off
for /D %%I IN (%1) DO for /F "tokens=1 delims=-r" %%J IN ("%%~aI") DO if %%J==d echo %%I is a directory

将其放入批处理文件中 - 需要使用您要验证的给定对象的名称来调用它,例如。 G。 myBat\\\myUncPath。你也可以放一个通配符,然后它会打印给定路径中的所有目录 - \\\myUncPath\\* 将打印所有目录在 \\\myUncPath/p>

注意:这应该适用于 Windows 2000 及更高版本并启用命令扩展(不幸的是不适用于 NT4)。我在 XP 上测试过它。

关于windows - 如何检查路径的目标是否是目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8909355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com