1

我有代码:

@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”有关,但我对此知之甚少。

4

1 回答 1

3

系统找不到 XCOPY 或 CSCRIPT,因为您正在PATH使用以下语句修改:

set path="C:\Users\%username%\%dec%"

如果你想附加到你的路径,试试这个:

set path=%PATH%;C:\Users\%username%\%dec%

或者,使用不同的变量名:

set MyPath="C:\Users\%username%\%dec%"
于 2013-11-05T19:25:09.323 回答