Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将精确字符串从.bat文件回显到另一个.bat文件_Batch File_Echo - Fatal编程技术网

Batch file 将精确字符串从.bat文件回显到另一个.bat文件

Batch file 将精确字符串从.bat文件回显到另一个.bat文件,batch-file,echo,Batch File,Echo,请温柔一点 我正在尝试创建一个.bat脚本,以使用第一个脚本中设置的变量创建另一个.bat脚本。 我的所有其他“echo”都以正确的格式输出到SS_Update.bat。但我正在努力解决一些无法正确复制的行。在“设置新SS.bat”中,我有。。。(断章取义) “SS_Update.bat”中的结果是 我知道我需要转义一些特殊字符,例如我想要%%,所以我使用%%。我已经尝试了所有我能想到的使用例子的组合,但是我离我想要的越来越远 任何帮助都将不胜感激 您可以通过在行前面加上一个包含回送和重定向的变

请温柔一点

我正在尝试创建一个.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...