Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何在命令提示符(cmd)中区分文件和目录?_File_Command Line_Directory - Fatal编程技术网

File 如何在命令提示符(cmd)中区分文件和目录?

File 如何在命令提示符(cmd)中区分文件和目录?,file,command-line,directory,File,Command Line,Directory,我需要根据我正在读取的是文件还是目录来编写脚本。基本上,我有一个txt文件,其中包含文件和目录的路径,我阅读该文件如下:FOR/f%%I IN(root.txt)DO(call:output%%I) 我需要调用:output,它将只输出txt文件中包含的文件。 因此,如果root.txt包含: C:\TEST C:\TEST\TEST.txt C:\TEST\TEST2\TEST2.txt 输出应为: C:\TEST\TEST.txt C:\TEST\TEST2\TEST2.txt 请参阅以了解

我需要根据我正在读取的是文件还是目录来编写脚本。基本上,我有一个txt文件,其中包含文件和目录的路径,我阅读该文件如下:
FOR/f%%I IN(root.txt)DO(call:output%%I)

我需要调用:output,它将只输出txt文件中包含的文件。 因此,如果root.txt包含:

C:\TEST
C:\TEST\TEST.txt
C:\TEST\TEST2\TEST2.txt

输出应为:

C:\TEST\TEST.txt
C:\TEST\TEST2\TEST2.txt

请参阅以了解如何测试某个内容是否为目录

基本上,您必须在末尾追加
\
,然后使用
(如果存在)
;因此,您的脚本变成:

FOR /f %%i IN (root.txt) DO IF NOT EXIST "%%i\" (call :output %%i)

我仍然遇到一个小问题,即当路径包含一个空格(例如:C:\Program Files\test.txt)时,它将打印:C:\Program@Wael:是否在其周围加引号?是的,即使文件包含以下内容:“C:\Program Files\test.txt”我也有同样的问题。@Wael:哦,我明白了——我想你需要
delims
选项。看一看,;我自己没有做过(现在我面前没有Windows计算机),但我认为需要将分隔符设置为换行符而不是空格。