当我在其他PC上移动批处理脚本时,为什么批处理脚本无法正常工作?

时间:2015-08-05 07:31:50

标签: windows batch-file

根据我之前的问题,我找到了解决问题的方法。prev Question

我已经编写了我的脚本,但我把它移到我的服务器上,我感到很惊讶,因为脚本不再工作了。我为测试做了一个新的测试,上一个问题的解决方案不再可行了!

这是我的测试脚本

@echo off
TITLE MyBatch
SETLOCAL ENABLEDELAYEDEXPANSION

set "merger_list=C:\"
set "source=C:\ASAP2-Build\Input"
set "target=C:\ASAP2-Build\Output"

:loop
Rem this "for" loop executed for all folders in source path. /ad -> folder. /o:d -> sorted by date and time. /s -> include all subfolders. /b -> bare format
 for /f %%i in ('dir %source% /ad /o:d /s /b') do (
        rem command.merging is an empty file which works as a command. We use it to triger the merging function.
        if exist %%i\command.merging (
            rem a2lfiles_merger is a text file with a list, this list includes all the slave a2l files into a list to merging.
           if exist %%i\a2lfiles_merger*.txt (
             rem this loop have to find the complete name of the a2lfiles_merger. Will be f.ex. a2lfiles_merger2.txt 
                for /f "tokens=*" %%d in ('dir /b /s   a2lfiles_merger*.txt') do ( 
                set merger_list=%%d
                echo !merger_list!
                )

            )
        )

    )
echo Folder is empty or does not exist
timeout /t 5
goto loop

当我调用此行

时会出现问题
for /f "tokens=*" %%d in ('dir /b /s a2lfiles_merger*.txt') do ( 
                set merger_list=%%d
                echo !merger_list!
                )

屏幕上会显示消息Das System kann die angegebene Datei nicht finden.翻译为The system cannot find the file.

我必须解释为什么我需要这个代码,在每个文件夹中总是有一个名称未知的txt文件,但总是以a2lfiles_merger*.txt的形式。某些文件夹包含文件a2lfiles_merger2.txt,其他文件夹为a2lfiles_merger3.txt等。

所以我很难理解为什么这个脚本在我的计算机上而不是在我的服务器上运行。服务器也有Windows 7。 有人建议吗?

1 个答案:

答案 0 :(得分:0)

一开始就在那里 - 你的引号错误:

设置“merger_list = C:\”

不应该是:

设置merger_list =“C:\”

这是一个糟糕的开始;)