Variables 在目录树中使用随机生成的文件夹名?
我正试图创建一个批处理文件来备份和恢复我最喜欢的在线游戏的cookies,但在试图浏览Chrome用来存放cookies的随机命名文件夹时遇到了问题 我尝试使用Variables 在目录树中使用随机生成的文件夹名?,variables,random,batch-file,directory,Variables,Random,Batch File,Directory,我正试图创建一个批处理文件来备份和恢复我最喜欢的在线游戏的cookies,但在试图浏览Chrome用来存放cookies的随机命名文件夹时遇到了问题 我尝试使用FOR命令获取一个变量,该变量将为我提供文件夹的名称,然后我将在以后的目录中使用该变量。变量在ECHO'd时工作正常,但在放入目录时变为%G 起初我输入了代码,但它是一个难看的文本块,所以这里只是一个示例: FOR /F "tokens=*" %%G IN ('dir /B /AD "%SYSTEMDRIVE%\Users\%USERNA
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
,而不是应显示为的随机数字字符串
如果我做错了什么,请批评我。如果你有什么建议或其他处理方法,请告诉我。
提前感谢。
%%G
仅在FOR
的上下文中有效,因此您需要在DO
后面的括号中包含COPY
命令
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
注意,元变量(
%%G
)的大小写是关键的,但是目标的名称和大小写则不是。您也可以递归搜索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"
)
如果要在代码的一部分中找到文件夹并在其他地方使用,可以使用for
循环设置另一个变量,然后在以后的副本中使用另一个变量
FOR /F "tokens=*" %%G IN ('dir /B /AD "...your path..."') DO (
SET FolderPath=%%G
)
。。。以及其他地方:
COPY "...source file..." "%FolderPath%"
这并不是问题所在,但通过使用%LOCALAPPDATA%
而不是%SYSTEMDRIVE%\Users\%USERNAME%\AppData\Local
,您可以大大缩短路径。或者,如果您想要XP兼容性,%TEMP%\..\Google\etc
:)更多关于的信息。谢谢你给了我我想要的答案。:)给了我足够的机动性来增加额外的功能,非常感谢!