1
46
你可以这样做:
但是,这只适用于名称中没有空格的目录。在变量周围添加引号以处理空格时,变量将停止工作。要处理带有空格的目录,请将文件名转换为short 8.3格式,如下所示:
这个
(注意-上面给出的示例采用批处理文件中的工作格式。要使其在命令行上工作,请替换
|
2
78
这工作:
使用包含空格的目录名:
请注意,如果目录包含空格,则需要引号:
也可以表示为:
孩子们,在家里试一试是安全的! |
3
43
最近失败的方法与上述不同。很肯定他们过去工作过,可能和这里的DFS有关。现在使用 files attributes 切第一个字符
|
4
12
在我之前的产品中,我发现这同样有效:
%1周围不需要引号,因为调用方将提供它们。 这比我一年前的答案节省了整整一次击键;-) |
5
9
下面是一个脚本,它使用for构建一个完全限定的路径,然后通过pushd测试该路径是否是一个目录。请注意,它是如何处理具有空间的路径以及网络路径的。
上面保存为“isdir.bat”的样本输出:
|
6
6
这个很好用
我们需要使用%~1从%1中删除引号,并在结尾添加反斜杠。然后再把这整个放到量子曲里。 |
7
3
nul技术似乎只适用于8.3兼容的文件名。(换句话说,`D:\documents and settings`是“坏的”,`D:\docume~1`是“好的”)。我认为在目录名中有空格(如“文档和设置”)时,使用“nul”tecnique有些困难。 我正在使用Windows XP Service Pack 2并从%SystemRoot%\System32\Cmd.exe启动Cmd提示 以下是一些不起作用和对我起作用的例子: (这些都是在交互式提示下“实时”完成的演示。我认为,在尝试在脚本中调试之前,您应该先让它们在那里工作。) 这不起作用:
这不起作用:
这确实有效(对我而言):
看这里!!!!!]
这是可行的,但有点傻,因为点已经暗示我在一个目录中:
|
8
3
这可以工作,也可以处理其中包含空格的路径:
可能不是最有效的,但比我认为的其他解决方案更容易阅读。 |
9
3
@batchman61方法的变体(检查directory属性)。 这次我使用一个外部的“find”命令。
(哦,注意
输出:是的:
|
10
2
我用这个:
|
11
2
一个非常简单的方法是检查孩子是否存在。
如果孩子没有孩子,
如果您没有足够的访问权限(我没有测试过),您可能会有一些错误的否定。 |
12
1
基于 this article 标题为“一个批处理文件如何测试目录的存在性”,它“不完全可靠”。 但我只是测试了一下:
它似乎起作用了 |
13
1
我的解决方案是:
|
14
1
如果你能
|
15
1
我想发表我自己关于这个主题的函数脚本,希望有一天对某人有用。
此批处理脚本检查文件/文件夹是否存在以及是文件还是文件夹。 用途: script.bat“路径” 退出代码(S): 0:文件/文件夹不存在。 1:存在,是一个文件夹。 3:存在,是一个文件。 |
16
1
|
17
0
在Windows7和XP下,我无法让它告诉映射驱动器上的文件和目录。以下脚本: @echo off if exist c:\temp\data.csv echo data.csv is a file if exist c:\temp\data.csv\ echo data.csv is a directory if exist c:\temp\data.csv\nul echo data.csv is a directory if exist k:\temp\nonexistent.txt echo nonexistent.txt is a file if exist k:\temp\something.txt echo something.txt is a file if exist k:\temp\something.txt\ echo something.txt is a directory if exist k:\temp\something.txt\nul echo something.txt is a directory 生产: data.csv is a file something.txt is a file something.txt is a directory something.txt is a directory 因此,如果脚本可能是由映射路径或UNC路径提供的,请小心。下面的强制解决方案似乎是最简单的。 |
18
0
这是我在批处理文件中使用的代码
` ` |
19
0
好啊。。。如果在文件名中使用引号,“nul”技巧就不起作用了,因为引号占大多数文件名或空格较长的文件。 例如,
什么都不做,但是
作品。 我终于想出了这个办法,它似乎适用于所有情况:
或者,如果您可以确保满足“NUL”的所有要求,解决方案是:
把它们放到一个批处理文件中,比如“test.bat”,然后执行“test.bat myfile”。 |
20
0
这是我的解决方案,经过多次测试,如果存在,pushd,dir/ad等…
|
21
0
使用中的一个问题
另一种方法:
你可以代替
|
22
-2
我们不能用这个来测试一下吗?
这似乎对我有用。 |
Community wiki · 需要改变的用户界面模式? 1 年前 |
LITzman · 使用状态处理颜色主题更改 1 年前 |
Community wiki · 进程。退出(0):输出消失? 1 年前 |
arsaces · 将文本添加到特定文件的末尾 2 年前 |
YGranja · 库<图形。h> MinGW-W64缺少 2 年前 |
Felipe Palermo · Ctrl键仍被按下,按键事件() 2 年前 |
HCJ · win cmd中的批处理脚本循环 2 年前 |