我花了3个小时试图解决这个问题,但却找不到解决方案.这是我的批处理脚本:
if NOT Exist Counter.txt GOTO START
Type c:\counter.txt
if %COUNTER% EQU %Cycles% goto Pass
if NOT %COUNTER% EQU %Cycles% goto Cycle
:START
Set COUNTER=0
set CYCLES=250
:Cycle
set /A COUNTER=%COUNTER%+1 <----------- PROBLEM
echo Iteration %COUNTER% of %CYCLES%
echo Delay 3 seconds to reboot
choice /cy /n /t:y,3
warmboot.com
:Pass
pause
Run Code Online (Sandbox Code Playgroud)
它正在做的是运行文件"warmboot.com"(重新启动我的电脑)并运行250个周期.一旦循环运行250次(即当计数器等于循环时),它就会停止.
在Windows下,这是有效的.但是,这在DOS环境下不起作用.我已经尝试了从v4到v6.22甚至v7的版本,当它到达"问题"行时它们都会失败.
如果我这样做:
set /A COUNTER=%COUNTER%+1
echo %Counter%
Run Code Online (Sandbox Code Playgroud)
或这个:
set /A COUNTER+=1
echo %Counter%
Run Code Online (Sandbox Code Playgroud)
两者都将返回一个空行,即它不显示任何输出.
如果我输入:
set /?
Run Code Online (Sandbox Code Playgroud)
然后它显示了这个:
显示,设置或删除cmd.exe环境变量.
SET [variable = [string]]
variable指定环境变量名称.
string指定要分配给变量的一系列字符.
但在Windows下的CMD下键入相同的命令会显示更多内容.我认为DOS下的SET函数不支持算术函数,但出于工作目的,我只能在DOS下运行我的脚本.
有任何想法吗?
我不确定最近是否有 Google App Script 的更新,但我已经使用这个脚本几个月了,现在它坏了,不能工作。
这是我正在使用的脚本:
代码.gs:
// Gmail2GDrive
// https://github.com/ahochsteger/gmail2gdrive
/**
* Returns the label with the given name or creates it if not existing.
*/
function getOrCreateLabel(labelName) {
var label = GmailApp.getUserLabelByName(labelName);
if (label == null) {
label = GmailApp.createLabel(labelName);
}
return label;
}
/**
* Recursive function to create and return a complete folder path.
*/
function getOrCreateSubFolder(baseFolder,folderArray) {
if (folderArray.length == 0) {
return baseFolder;
}
var nextFolderName = folderArray.shift();
var nextFolder = null;
var folders …
Run Code Online (Sandbox Code Playgroud)