我正在尝试创建批处理脚本文件来帮助我的工作组中的管理助手。我们叫他约翰。
John每天从包含建筑图纸作为PDF的客户收到许多CD。每张CD都是独一无二的John为其分配了一个应用程序编号,并在应用程序编号作为文件夹名称的网络驱动器上创建一个新文件夹。 John然后将CD上的所有文件复制到新创建的文件夹名称。他为每张收到的CD重复这个过程。
我没有任何编程经验,所以我希望你能帮助我。以下是我在下面写的内容,但它不起作用。我得到了一个"内存不足"错误。在网络驱动器路径上正确创建了基于用户输入的新文件夹名称,但它是空的。
感谢您的帮助!仅供参考,我正在运行Windows 7 64位
@echo off
echo Welcome team member!
pause
set /p anumber=Type in the Application Number then press Enter key when done.
mkdir "S:\ARCH\Active Forms and Files\Submittal Floor Plans\%anumber%\"
:: e:\ is the CD drive path
set source=e:\
:: S:\ is a network drive
set destination="S:\ARCH\Active Forms and Files\Submittal Floor Plans\%anumber%\"
xcopy %source%\* %destination%\* /s /e /l /h /i >nul
pause
exit
答案 0 :(得分:1)
您正在将变量%source%
设置为e:\
,在E:\\*
中使用时,解释器将其读作%source%\*
,从而导致目录无效。 %destination%
变量也是如此。
更新了脚本:
@echo off
set "networkFolder=S:\ARCH\Active Forms and Files\Submittal Floor Plans"
set "CDDrive=e:"
echo Welcome team member!
:input
set "applicationNo="
set /p "applicationNo=Enter the Application Number and press ENTER: "
if not defined applicationNo goto :input
set "newLocation=%networkFolder%\%applicationNo%"
:actions
md "%newLocation%"
xcopy %CDDrive%\* "%newLocation%" /s /e /i /h>nul
echo Completed!
pause