xcopy在Windows x64中:找不到文件
问题描述:
此脚本将%programfiles%
或%programfiles(x86)
中的所有文件和文件夹复制到目标文件夹。如果我的Windows体系结构x86,复制%programfiles%
,复制文件/文件夹成功,但不是如果我的Windows体系结构x64。xcopy在Windows x64中:找不到文件
脚本
@echo Off
set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
)
echo Arsitektur Prosesor Windows Anda %Arch%
set /P drive=Folder backup akan disimpan di drive apa : %=%
if %Arch% == "x64" (
if not exist "%drive%:\BACKUP_ESPT\C" mkdir "%drive%:\BACKUP_ESPT\C"
if not exist "%drive%:\BACKUP_ESPT\VIRTUALSTORE" mkdir "%drive%:\BACKUP_ESPT\VIRTUALSTORE"
xcopy /Y /S "%ProgramFiles(x86)%\DJP\*.*" "%drive%:\BACKUP_ESPT\C"
xcopy /Y /S "%localappdata%\VirtualStore\Program Files (x86)\DJP\*.*" "%drive%:\BACKUP_ESPT\VIRTUALSTORE"
) else (
if not exist "%drive%:\BACKUP_ESPT\C" mkdir "%drive%:\BACKUP_ESPT\C"
if not exist "%drive%:\BACKUP_ESPT\VIRTUALSTORE" mkdir "%drive%:\BACKUP_ESPT\VIRTUALSTORE"
xcopy /y /S "%ProgramFiles%\DJP\*.*" "%drive%:\BACKUP_ESPT\C"
xcopy /y /S "%localappdata%\VirtualStore\Program Files\DJP\*.*" "%drive%:\BACKUP_ESPT\VIRTUALSTORE"
)
ECHO Proses Backup e-SPT selesai
pause
结果
Arsitektur Prosesor Windows Anda x64
Folder backup akan disimpan di drive apa : D
File not found - *.*
0 File(s) copied
File not found - *.*
0 File(s) copied
Proses Backup e-SPT selesai
Press any key to continue . . .
有什么不对?请纠正我。谢谢
答
我正在看你的脚本,并纠正我,如果我错了,但是当处理器体系结构是x64,那么你正在访问x86文件夹(如你的情况)。那是你要的吗?
顺便说一下:您正在使用/ s选项进行xcopy。这是复制整个目录的选项。你不需要*.*
postfix然后:只需指定目录,它会完全复制它。
答
if %Arch% == "x64" (
应该
if "%Arch%"=="x64" (
的字符串匹配绝对是文字; x64
和"x64"
不是同一回事,所以else
分支将被采取并且目标不存在。
第一个故障排除步骤是省略“echo off”行,以便您可以看到脚本实际上在做什么。 – 2014-09-26 05:07:10
您是否尝试过调试脚本? – 2014-09-26 07:12:04
呃,是的,'@echo Off'让你的生活变得非常困难! – 2014-09-27 12:02:33