Batch file 将精确字符串从.bat文件回显到另一个.bat文件
请温柔一点 我正在尝试创建一个.bat脚本,以使用第一个脚本中设置的变量创建另一个.bat脚本。 我的所有其他“echo”都以正确的格式输出到SS_Update.bat。但我正在努力解决一些无法正确复制的行。在“设置新SS.bat”中,我有。。。(断章取义) “SS_Update.bat”中的结果是 我知道我需要转义一些特殊字符,例如我想要%%,所以我使用%%。我已经尝试了所有我能想到的使用例子的组合,但是我离我想要的越来越远Batch file 将精确字符串从.bat文件回显到另一个.bat文件,batch-file,echo,Batch File,Echo,请温柔一点 我正在尝试创建一个.bat脚本,以使用第一个脚本中设置的变量创建另一个.bat脚本。 我的所有其他“echo”都以正确的格式输出到SS_Update.bat。但我正在努力解决一些无法正确复制的行。在“设置新SS.bat”中,我有。。。(断章取义) “SS_Update.bat”中的结果是 我知道我需要转义一些特殊字符,例如我想要%%,所以我使用%%。我已经尝试了所有我能想到的使用例子的组合,但是我离我想要的越来越远 任何帮助都将不胜感激 您可以通过在行前面加上一个包含回送和重定向的变
任何帮助都将不胜感激 您可以通过在行前面加上一个包含回送和重定向的变量来简化任务,这样代码除了必要的加倍%和转义之外看起来正常
Set _=^>^> "%USERPROFILE%\Documents\%Site%\SS_Update.bat" Echo
%_% for /r %Tempfolder% %%%%a in (*.zip) do set sszip=%%%%~nxa
%_% for /r %Tempfolder% %%%%a in (*.zip) do set tempfile=%%%%~dpnxa
%_% for /f %%%%i in (%currentss%) do set date1=%%%%~ti
%_% for /f %%%%i in (%extractedss%) do set date2=%%%%~ti
%_% for /f %%%%i in ('DIR /B /O:D %currentss% %extractedss%') do echo Current SS is older than the Extracted SS or missing...
我更愿意将命令封装在一个重定向中。(唯一的问题是使用标准扬抑符转义内部右括号)。若要转义一个百分比字符,您需要使用另一个百分比字符,所以要回音两个字符,您需要四个
>“%USERPROFILE%\Documents\%Site%\SS\u Update.bat”(
在(*.zip^)中为/R“%Tempfolder%”%%%A设置回显“sszip=%%%~nxA”
在(*.zip^)中为/R“%Tempfolder%”%%%%A回送设置“tempfile=%%%~dpnxA”
(%currentss%^)中/F%%%I的回显设置为“date1=%%%~tI”
(%extractedss%^)中的/F%%%%%I的回显设置为“date2=%%%~tI”
在('DIR/B/OD%currentss%%extractedss%%'^)中对/F%%%%%I进行回显(
回波电流SS早于提取的SS或缺少…^)
)
您的集合中缺少一个额外的%
,如集合sszip=%%~nxa
for /r C:\Users\Pelican\Documents\Temp %%~nxa
for /r C:\Users\Pelican\Documents\Temp %%~dpnxa
for /f %currentss%~ti
for /f %extractedss%~ti
for /f %D ') do echo Current SS is older than the Extracted SS or missing...
Set _=^>^> "%USERPROFILE%\Documents\%Site%\SS_Update.bat" Echo
%_% for /r %Tempfolder% %%%%a in (*.zip) do set sszip=%%%%~nxa
%_% for /r %Tempfolder% %%%%a in (*.zip) do set tempfile=%%%%~dpnxa
%_% for /f %%%%i in (%currentss%) do set date1=%%%%~ti
%_% for /f %%%%i in (%extractedss%) do set date2=%%%%~ti
%_% for /f %%%%i in ('DIR /B /O:D %currentss% %extractedss%') do echo Current SS is older than the Extracted SS or missing...