小编sha*_*337的帖子

如何在DOS下增加变量?

我花了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下运行我的脚本.

有任何想法吗?

dos batch-file

37
推荐指数
2
解决办法
12万
查看次数

Gmail 到 Google Drive 脚本损坏

我不确定最近是否有 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)

gmail google-apps-script google-drive-api

2
推荐指数
1
解决办法
645
查看次数