我有代码:
@echo off
color 0a
cd C:\Windows\System32
set pth=%~dp0
for /f %%D in ('Find /V /C "" ^< "%pth%custom\mscDT.txt"') do (
set custc=%%D
)
cls
set /p dec="Path: "
set path="C:\Users\%username%\%dec%"
set /a i=2
setlocal EnableDelayedExpansion
:import
if i==12 goto loopend
if "!path:~-%i%,1!"=="." set ext="!path:~-%i%!"
set /a i=%i%+1
:loopend
echo %ext%
xcopy "%path%" "%pth%custom\cust%custc%%ext%" /y
echo What would you like the file to displayed as?
set /p chose="- "
for /F %%* in (cscript "%pth%GETSZE.vbs" "%path%") do set vars=%%*
echo %vars%
pause
这意味着复制文件然后运行vbs以获取其大小和其他一些东西。但是当我运行'cscript'并且'xcopy'不被识别为命令时,即使任何其他批处理文件工作正常。有没有人有解决这个问题的原因?我觉得它与'setlocal EnableDelayedExpansion'有关,但我对它并不了解。
答案 0 :(得分:3)
系统无法找到XCOPY或CSCRIPT,因为您正在使用以下声明修改PATH
:
set path="C:\Users\%username%\%dec%"
如果你想追加你的路径,试试这个:
set path=%PATH%;C:\Users\%username%\%dec%
或者,使用不同的变量名称:
set MyPath="C:\Users\%username%\%dec%"