【发布时间】:2013-03-21 18:52:20
【问题描述】:
我正在尝试制作一个批处理文件来备份和恢复我最喜欢的在线游戏的 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,而不是应显示为的随机数字字符串。
如果我做错了什么,请批评我。如果您有建议或替代方法来处理此问题,请告诉我。 提前致谢。
【问题讨论】:
-
这不是问题所在,但是您可以通过使用
%LOCALAPPDATA%而不是%SYSTEMDRIVE%\Users\%USERNAME%\AppData\Local大大缩短您的路径。或者,如果您想要 XP 兼容性,%TEMP%\..\Google\etc。 :) 有关Windows Environment Variables 的更多信息。
标签: variables random batch-file directory