2013-03-21 2 views
1

좋아하는 온라인 게임의 쿠키를 백업하고 복원하는 단일 배치 파일을 만들려고 시도하고 있지만 Chrome이 쿠키를 저장하는 데 사용하는 임의로 이름이 지정된 폴더를 탐색하려고 할 때 문제가 발생했습니다.디렉토리 트리에서 임의로 생성 된 폴더 이름을 사용합니까?

FOR 명령을 사용하여 폴더의 이름을 제공하는 변수를 얻으려고 시도했지만 디렉토리의 변수를 나중에 사용합니다. 변수는 ECHO 'd 일 때 제대로 작동하지만 디렉토리에 넣으면 %G이됩니다.

가 처음에 나는 내 코드에 넣어하지만 그래서 여기에 단지 샘플링이다, 텍스트의 추한 블록 :이 올바른 폴더 이름 :

의 에코를 반환

FOR /F "tokens=*" %%G IN ('dir /B /AD "%SYSTEMDRIVE%\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects"') DO (
echo %%G) 

그러나 내가 디렉토리에 %%G을 사용했을 때

copy "%SYSTEMDRIVE%\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\%%G\chat.kongregate.com\antiIdle_file0" "%HOMEPATH%\My Documents\Anti-Idle backup\antiIdle_file0.sol" /D /E /C /R /I /K /Y 

그것의 앞에 ECHO와 변수를 테스트 %%G%G로 나타 숫자로 나타나는 임의의 문자열 대신에.

내가 뭔가 잘못하고 있다면, 저를 비난 해주십시오. 이 문제를 해결할 제안이나 다른 방법이 있으면 알려주십시오. 미리 감사드립니다.

+0

하지 \ % USERNAME % \ AppData \ Local'에 있습니다. 또는 XP 호환성을 원한다면,'% TEMP % \ .. \ Google \ etc'. :) [Windows 환경 변수] (http://ss64.com/nt/syntax-variables.html)에 대한 추가 정보. – rojo

답변

0

, 당신은 다른 변수를 설정 for 루프를 사용하고, 나중에 사본을 다른 하나를 사용할 수 있습니다.

FOR /F "tokens=*" %%G IN ('dir /B /AD "...your path..."') DO (
    SET FolderPath=%%G 
) 

... 그리고 다른 곳에서 :

이 대신`% SYSTEMDRIVE % \ 사용자의`잘못,하지만 당신은 '%의 LOCALAPPDATA의 %를 사용하여 경로를 많이 줄일 수있는 것으로
COPY "...source file..." "%FolderPath%" 
+0

내가 찾고 있던 해답을 주셔서 감사합니다. :) 여분의 기능을 추가하기에 충분한 기동성을주었습니다. 덕분에 1 톤이되었습니다! – SimpleMan

0

%%G는 따라서 당신은 분명히 DO

FOR /F "tokens=*" %%G IN (
'dir ...blahblahblah...SharedObjects"') DO (
echo %%G 
copy "%SYSTEMDRIVE%\...blah..SharedObjects\%%G\...zzzz...file0" "%HOMEPATH%...etc.._file0.sol" /D /E /C /R /I /K /Y 
) 

다음 괄호 사이에 COPY 명령을 포함하는 데 필요한 FOR의 맥락에서만 유효의 echo %%G은 선택 사항입니다. (이 별도의 줄에 명령을 깰 괜찮습니다 -.주의 오픈 괄호가 DO 같은 줄에하는 것이 중요합니다)

또 다른 방법은 주목

FOR /F "tokens=*" %%G IN (
'dir ...blahblahblah...SharedObjects"') DO set "target=%%G" 
copy "%SYSTEMDRIVE%\...blah..SharedObjects\%TARGET%\...zzzz...file0" "%HOMEPATH%...etc.._file0.sol" /D /E /C /R /I /K /Y 

하고있는 경우 메타 변수 (%%G)는 중요하지만 TARGET의 이름과 대소 문자는 아닙니다.

0

chat.kongregate.com에 대한 재귀 검색을 수행 할 수도 있습니다. 당신은 코드의 한 부분에있는 폴더를 찾아 다른 곳에서 사용하려면

for /f "delims=" %%I in ('dir /s /b /a:d "%LOCALAPPDATA%\Google\Chrome\*chat.kongregate.com"') do (
    copy /d /y "%%I\antiIdle_file0" "%USERPROFILE%\My Documents\Anti-Idle backup\antiIdle_file0.sol" 
) 
관련 문제