2014-09-26 5 views
1

%programfiles% 또는 %programfiles(x86)의 모든 파일 및 폴더를 대상 폴더에 복사하는 스크립트입니다. 내 Windows 아키텍처 x86, %programfiles%, 복사 파일/폴더가 성공하면,하지만 내 Windows 아키텍처 x64 경우.xcopy in 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"라인을 생략하여 스크립트가 실제로 무엇을하는지 볼 수 있도록하는 것입니다. –

+0

스크립트 디버깅을 시도 했습니까? –

+0

어, 그래,'@echo Off'는 너의 인생을 정말로 어렵게 만든다 !! –

답변

0

나는 당신의 스크립트를보고, 내가 틀렸다면 나를 바로 잡는다. 그러나 프로세서 아키텍처가 x64 일 때, x86 폴더에 접근하고있다. 너가 원하는게 그거야?

그런데 : xcopy에/s 옵션을 사용하고 있습니다. 그것이 전체 디렉토리를 복사하는 옵션입니다. 그러면 *.* 접미사가 필요하지 않습니다. 단지 디렉토리를 지정하면 완전히 복사됩니다.

0
if %Arch% == "x64" (

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

문자열 일치해야 절대적으로 리터럴; x64"x64"은 동일한 것이 아니므로 else 분기가 수행되고 대상이 존재하지 않습니다.