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 . . . 

有什么不对?请纠正我。谢谢

+2

第一个故障排除步骤是省略“echo off”行,以便您可以看到脚本实际上在做什么。 – 2014-09-26 05:07:10

+0

您是否尝试过调试脚本? – 2014-09-26 07:12:04

+0

呃,是的,'@echo Off'让你的生活变得非常困难! – 2014-09-27 12:02:33

我正在看你的脚本,并纠正我,如果我错了,但是当处理器体系结构是x64,那么你正在访问x86文件夹(如你的情况)。那是你要的吗?

顺便说一下:您正在使用/ s选项进行xcopy。这是复制整个目录的选项。你不需要*.* postfix然后:只需指定目录,它会完全复制它。

if %Arch% == "x64" (

应该

if "%Arch%"=="x64" (

的字符串匹配绝对是文字; x64"x64"不是同一回事,所以else分支将被采取并且目标不存在。