Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 如何检查文件扩展名?_Batch File_Scripting - Fatal编程技术网

Batch file 如何检查文件扩展名?

Batch file 如何检查文件扩展名?,batch-file,scripting,Batch File,Scripting,我正在尝试创建一个.bat脚本来检查文件是否存在,以及这些文件是.txt还是.csv。当我运行脚本时,它不会执行exist命令。我做错了什么?到目前为止,我有: echo cd C:\Users\Desktop if exist "C:\Users\Desktop\*" ( for /R "C:\Users\Desktop\" %%x in (*.csv) do ( call another script )

我正在尝试创建一个.bat脚本来检查文件是否存在,以及这些文件是.txt还是.csv。当我运行脚本时,它不会执行exist命令。我做错了什么?到目前为止,我有:

echo
cd C:\Users\Desktop
if exist "C:\Users\Desktop\*"
    (
        for /R "C:\Users\Desktop\" %%x in (*.csv) do
        (
            call another script
        )
    )
    else
    (
    echo Empty Directory.
    )

您需要在以下行中完成命令。。。我让它像这样工作:

echo  
cd C:\Users\jimwh  
if exist "C:\Users\jimwh\*" (  
    for /R "C:\Users\jimwh\" %%x in (*.x*) do (  
       echo %%x  
    )  
)  
else (  
    echo Empty Directory.  
) 

代码中有太多换行符!键入if/?对于/?在命令提示符下,仔细阅读帮助!所以我设法做到了。如果存在*.txt中的/R%%x,请立即采取措施,我的问题是我希望能够调用logparser并对该.txt文件执行。有什么想法吗?实际上这里根本不需要if exist,因为如果给定的根目录不存在,/R不会迭代……非常正确。我还发现,我可以通过管道将内容导入命令行:echo logparser | SELECT*从文件导入文件谢谢你的想法。我不必调用for循环中的目录。这无法工作,因为else不能在新行中;看看/?…恐怕aschipfl是对的。else将抛出错误。@user2771365,“else”未被识别为内部或外部命令、可操作程序或批处理文件。显示,与是否存在结果是否为真无关!还有cd C:\。。。应该是cd/D C:\…,文件模式*.x*没有意义。。。