1

お気に入りのオンライン ゲームの Cookie のバックアップと復元の両方を行う単一のバッチ ファイルを作成しようとしていますが、Chrome が Cookie を格納するために使用するランダムな名前のフォルダーを通過しようとすると問題が発生します。

コマンドを使用して、フォルダーの名前を示す変数を取得しようとし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はずのランダムな数字の文字列ではなく、 が表示されます。

私が何か間違ったことをしているなら、私を批判してください。これを処理するための提案または別の方法がある場合は、教えてください。前もって感謝します。

4

3 に答える 3

0

%%Gはコンテキストでのみ有効であるため、次の括弧の間にコマンドFORを含める必要があります。COPYDO

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
)

明らかに、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

metavariable(%%G)のCASEは重要ですが、の名前と大文字小文字は重要でTARGETはないことに注意してください。

于 2013-03-21T19:10:31.810 に答える
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"
)
于 2013-03-21T19:26:14.347 に答える
0

コードの一部でフォルダーを見つけて別の場所で使用する場合は、forループを使用して別の変数を設定し、後でその別の変数をコピーに使用できます。

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

...および他の場所:

COPY "...source file..." "%FolderPath%"
于 2013-03-21T19:30:45.767 に答える