2013-07-18 2 views
1

Я тестировал это до сих пор из тестового каталога без ошибок, но мне понадобится сценарий для вызова каталогов на других серверах. Как только я попытаюсь добавить UNC для каталога, в котором находится командный файл, скрипт не создает% SITE% .txt.Как я могу запустить оператор for с помощью UNC?

Это проблематично линия:

for /f "delims=" %%a in ('dir /b /a-d *.DONE ^| find "%SITE%" /c') do <nul 

Полный файл:

@ECHO OFF 
SET LIMIT=7 
SET SITE=04338 
SET SITEFOLDER=D:\Test\Veracity 
SET SITEFILE="%SITE%.txt" 
SET SAVEFILE="count%SITE%.txt" 
SETLOCAL ENABLEDELAYEDEXPANSION 

REM Get the current count or start a new file if it does not exist. 
IF EXIST %SAVEFILE% GOTO READFILE 
ECHO 0 >%SAVEFILE% 
:READFILE 
SET /P COUNT= <%SAVEFILE% 

REM Increment the save file value by one. 
FOR %%B IN ("%SAVEFILE%") DO (
    CALL :ADD_ONE 
) 
ECHO %COUNT% >%SAVEFILE% 

for /f "delims=" %%a in ('dir /b /a-d *.DONE ^| find "%SITE%" /c') do <nul 

set/p "=%%a,">>%SITE%.txt 

GOTO CHECK_VALUE 
:ADD_ONE 
SET /A COUNT+=1 
GOTO :EOF 

REM Conditionally reset the counter and do something. 
:CHECK_VALUE 
IF %COUNT% LSS %LIMIT% EXIT /B 
DEL %SAVEFILE% 2>NUL 
IF EXIST %SITEFILE% DEL %SITEFILE% 

ECHO 

ответ

0
for /f "delims=" %%a in (' dir "[UNC PATH]\*.DONE" /b /a-d ^| find "%SITE%" /c') do (set /p "=%%a,">>%SITE%.txt <nul) 
+0

Вычислено. – user2596457

1

Она должна быть на одной линии или используйте круглые скобки.

for /f "delims=" %%a in ('dir /b /a-d *.DONE ^| find "%SITE%" /c') do set/p "=%%a,">>%SITE%.txt <nul 
+0

Спасибо за ответ. К сожалению, он все еще не работает. для/f "delims =" %% a in ('"D: \ Test \ Veracity"/b/ad * .DONE^| найти "% SITE%"/c') установить/p "= %% a, ">>% SITE% .txt user2596457

+0

Вам не хватает DIR из вашей команды. – foxidrive

+0

Все еще не удается. для/f "delims =" %% a in ('"D: \ Test \ Veracity" dir/b/ad * .DONE^| find "% SITE%"/c') установить/p "= %% a , ">>% SITE% .txt user2596457