У меня есть следующий код, который прекрасно работаетAmpersand, кажется, разделив свою переменную - пакетный файл
set "findest=\\CFFS\CF_Networked_Files\!!CLIENT DOCUMENTS\%PrimaryApplicantLast%, %PrimaryApplicantlFirst%"
.....
@echo %DATE% %time:~0,-6% [%findest%] >> log.txt
Когда я бегу те же команды, но с% найдешь% быть немного длиннее и содержащий & символ, он, кажется, разделяет переменную% findest% at или сразу после &.
Проблема код -
SET "findest=\\CFFS\CF_Networked_Files\!!CLIENT DOCUMENTS\%PrimaryApplicantLast%, %PrimaryApplicantlFirst% & %SecondaryApplicantLast%, %SecondaryApplicantFirst%"
....
@echo %DATE% %time:~0,-6% [%findest%] >> log.txt
Там будет много больше происходит в моем коде, но это написание в мой файл журнала, который бросает ошибку, ошибка является% SecondaryApplicantLast% не действительная команда, оставив меня поверить, что мой код был разделен.
Ошибка -
Press any key to continue . . .
Wed 24/02/2016 13:21 [\\CFFS\CF_Networked_Files\!!CLIENT DOCUMENTS\EXAMPLE, test
'EXAMPLE2' is not recognized as an internal or external command,
operable program or batch file.
Press any key to continue . . .
Приветствия
EDIT -
@echo
setlocal enableDelayedExpansion
echo.
echo. Client Folder Creator!
echo.
echo. Follow the instructions to create appropriate client folders.
echo --------------------------------------------------------------------------------
:choice
Set /P c=".Are there multiple applicants[Y/N]?"
:Primary
echo.
echo "Primary Applicant"
echo.
set /P "PrimaryApplicantlFirst=Enter First Name: "
set /P "PrimaryApplicantLast=Enter Last Name: "
echo.
call :toUpper PrimaryApplicantLast
if /I "%c%" EQU "N" goto :CreateFolders
if /I "%c%" EQU "Y" goto :Secondary
:Secondary
echo "Secondary Applicant"
echo.
set /P "SecondaryApplicantFirst=Enter First Name: "
set /P "SecondaryApplicantLast=Enter Last Name: "
echo.
call :toUpper SecondaryApplicantLast
goto :CreateFoldersMulti
:CreateFoldersMulti
SET "findest=\\CFFS\CF_Networked_Files\!!CLIENT DOCUMENTS\%PrimaryApplicantLast%, %PrimaryApplicantlFirst% ^& %SecondaryApplicantLast%, %SecondaryApplicantFirst%"
robocopy Z:\ProjectIT\BAT\test "%findest%" /e /NFL /NDL /NJH /NJS
SET blanknum=1
SET "finsubdest=-BLANK-%PrimaryApplicantLast% & %SecondaryApplicantLast%."
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
robocopy Z:\ProjectIT\BAT\Construction "%findest%\%blanknum%%finsubdest%" /e /NFL /NDL /NJH /NJS
echo Folder has been created for "%PrimaryApplicantLast% & %SecondaryApplicantLast%"
echo.
@echo "%findest%"
echo.
pause
@echo %DATE% %time:~0,-6% [%findest%] >> log.txt
%SystemRoot%\explorer.exe "%findest%"
pause
goto :eof
:CreateFolders
set "source=Z:\ProjectIT\BAT\test"
set "findest=\\CFFS\CF_Networked_Files\!!CLIENT DOCUMENTS\%PrimaryApplicantLast%, %PrimaryApplicantlFirst%"
robocopy "%source%" "%findest%" /e /NFL /NDL /NJH /NJS
SET blanknum=1
set finsubdest=-BLANK-%PrimaryApplicantLast%
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
IF EXIST "%findest%\%blanknum%%finsubdest%" (
SET /A blanknum=blanknum+1
)
robocopy Z:\ProjectIT\BAT\Construction "%findest%\%blanknum%%finsubdest%" /e /NFL /NDL /NJH /NJS
echo Folder has been created for "%PrimaryApplicantLast%"
echo.
echo %findest%
echo.
pause
@echo %DATE% %time:~0,-6% [%findest%] >> log.txt
%SystemRoot%\explorer.exe "%findest%"
goto :eof
:---------------------------------------------------------------------
:toUpper str -- converts lowercase character to uppercase
if not defined %~1 EXIT /b
for %%a in ("a=A" "b=B" "c=C" "d=D" "e=E" "f=F" "g=G" "h=H" "i=I"
"j=J" "k=K" "l=L" "m=M" "n=N" "o=O" "p=P" "q=Q" "r=R"
"s=S" "t=T" "u=U" "v=V" "w=W" "x=X" "y=Y" "z=Z" "ä=Ä"
"ö=Ö" "ü=Ü") do (
call set %~1=%%%~1:%%~a%%
)
EXIT /b
К сожалению это привело к той же ошибке. Я выложу весь свой код - может быть, ошибка лежит где-то в другом месте. –
Может быть, если вы повторили операцию в настройке 'finsubdest'? – Magoo
без кости с этим. Мой код вызывает другие странные ошибки. Это понижает !! от !! КЛИЕНТСКИЕ ДОКУМЕНТЫ и копирование файлов в новую папку КЛИЕНТСКИЕ ДОКУМЕНТЫ. Возможно, плохой день для партии. Завтра я получу еще один взгляд! –