GVKun编程网logo

脚本忽略退出命令并跳出functionBATCH / CMD(跳出脚本错误)

20

如果您对脚本忽略退出命令并跳出functionBATCH/CMD感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于脚本忽略退出命令并跳出functionBATCH/CMD的详细

如果您对脚本忽略退出命令并跳出functionBATCH / CMD感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于脚本忽略退出命令并跳出functionBATCH / CMD的详细内容,我们还将为您解答跳出脚本错误的相关问题,并且为您提供关于batch filefunction需要太多的时间来执行、c# – MYSQL中不存在Canonical Function“EntityFunctions.TruncateTime”、comboBox 的 itemMatchingFunction & labelToItemFunction、db.students.batchInsert is not a function :@(shell):1:1的有价值信息。

本文目录一览:

脚本忽略退出命令并跳出functionBATCH / CMD(跳出脚本错误)

脚本忽略退出命令并跳出functionBATCH / CMD(跳出脚本错误)

我写的这个脚本是为了parsingWMIC中的IP信息。 问题是当它只用一台DNS服务器input的计算机上使用时,脚本失败了。 它似乎运行:删除function,即使variablesDNS2没有设置,然后:删除function以某种方式失败,我不熟悉,并忽略退出命令,突破function和脚本的部分我不知道不需要它。这里是有问题的代码,通过设置你的DNS服务器和索引来testing它。 脚本可以与2台DNS服务器一起使用,并且只能使用1台。

@echo off setlocal enabledelayedexpansion SETLOCAL ENABLEEXTENSIONS wmic NICCONfig where "Index = 1" get /Value | more > storage.txt for /f "tokens=1-9 delims=,}{=" %%f in (storage.txt) do ( set cat=%%f IF /i !cat!==IPAddress (set IP=%%g) IF /i !cat!==IPsubnet (set SUB=%%g) IF /i !cat!==DefaultIPGateway (set GW=%%g) IF /i !cat!==DNSServerSearchOrder ( set DNS=%%g set DNS2=%%h ) IF /i !cat!==IPEnabled (set enabled=%%g) IF /i !cat!==Description (set desc=%%g) ) if /i %enabled%==True ( if defined IP ( set item=IP CALL :remove ) if defined SUB ( set item=SUB CALL :remove ) if defined GW ( set item=GW CALL :remove ) if defined DNS ( set item=DNS CALL :remove ) if defined DNS2 ( set item=DNS2 CALL :remove ) ) goto :menu echo SHOULDN''T BE HERE pause :::::::::Function to remove quotes:::::::::::::: :remove for /f tokens^=1^ delims^=^" %%p in (!%item%!) do ( set !item!=%%p rem echo !%item%! EXIT /b ) echo I broKE OUT OF THE FUNCTION pause :menu echo I worked! echo %IP% echo %sUB% echo %GW% echo %DNS1% if defined DNS2 ( echo %DNS2% ) pause

这里是使用LotPings返工的另一个例子,请注意,即使没有DNS2,它仍然会执行底部的“if defined”

@echo off SETLOCAL ENABLEEXTENSIONS enabledelayedexpansion Set Prop=IPAddress IPsubnet DefaultIPGateway DNSServerSearchOrder IPEnabled Description for /f "tokens=1-9 delims=,}{=" %%f in ( ''wmic NICCONfig where "Index = 1" get /Value^|findstr /i /B "%Prop%"'' ) do (IF /i %%f==IPAddress set "IP=%%~g" IF /i %%f==IPsubnet set "SUB=%%~g" IF /i %%f==DefaultIPGateway set "GW=%%~g" IF /i %%f==DNSServerSearchOrder ( set "DNS=%%~g" set "DNS2=%%~h" ) IF /i %%f==IPEnabled set "enabled=%%~g" IF /i %%f==Description set "desc=%%~g" ) set|Findstr /i /B "IP SUB GW DNS Ena Desc" echo I worked! echo %DNS% echo %DNS2% if defined DNS2 ( echo DNS2 found,shouldn''t have found this) pause

使用for循环Windows批处理执行两次

windows bat文件:取消NET USE

Windowsbatch file – 按修改和/或创builddate将文件分类到文件夹中

简单的安装方法需要Windows / Batch Reference吗?

批量命令ImageMagick转换目录中的所有文件和子窗口上的子目录

bat文件运行后closuresWindows应用程序

用户点击退出时执行批处理代码

如何在Windows命令脚本中使用sql * plus来控制stream?

确定批处理脚本是否已从命令行(cmd)启动/执行 – 或者 – 要暂停还是不暂停?

/ p是指set / p中的含义?

编辑完成没有临时文件的批处理返工:

@echo off SETLOCAL ENABLEEXTENSIONS enabledelayedexpansion Set Prop=IPAddress IPsubnet DefaultIPGateway DNSserverSearchOrder IPEnabled Description for /f "tokens=1-9 delims=,}{=" %%f in ( ''wmic NICCONfig where "Index = 1" get /Value^|findstr /i /B "%Prop%"'' ) do (IF /i %%f==IPAddress set "IP=%%~g" IF /i %%f==IPsubnet set "SUB=%%~g" IF /i %%f==DefaultIPGateway set "GW=%%~g" IF /i %%f==DNSserverSearchOrder ( set "DNS=%%~g" set "DNS2=%%~h" ) IF /i %%f==IPEnabled set "enabled=%%~g" IF /i %%f==Description set "desc=%%~g" ) If "%DNS2:~3%" EQU "" Set "DNS2=" set|Findstr /i /B "IP SUB GW DNS Ena Desc" echo I worked! pause

当你有这样的问题时,你应该在任何相关的地方添加调试信息。

在你的情况下添加一些回声

IF /i %%f==DNSserverSearchOrder ( set "DNS=%%~g" set "DNS2=%%~h" echo #1 "%%~g" echo #2 "%%~h" if defined dns echo DNS defined if defined dns2 echo DNS2 defined )

我得到这样的东西

>#1“10.51.16.9”

>“2”

> DNS定义

>定义了DNS2

正如你可以看到DNS2被定义的那样, echo #2 "%%~h" 〜h echo #2 "%%~h"显示了一个被破坏的行!

原因在这里,wmic的行结尾是rrn而不是rn 。

因此在DNS2中现在是一个r字符。

您可以使用清理功能从变量中删除所有r 。

这是因为所有的r在用百分号扩展的变量之后被移除(但是当它被感叹号扩展时或者它是%%p参数时)

:sanitize set "var=!%1!" set "%1=%var%" exit /b

并用它

IF /i %%f==DNSserverSearchOrder ( set "DNS=%%~g" set "DNS2=%%~h" call :sanitize DNS call :sanitize DNS2 echo #1 "!DNS!" echo #2 "!DNS2!" if defined dns echo DNS defined if defined dns2 echo DNS2 defined )

就这样 …

在解析wmic输出的环绕另一个for /F循环:

rem // Code before the loop for /F "delims=" %%e in ('' wmic NICCONfig where "Index = 1" get /Value ^| findstr /I /B "%Prop%" '') do ( for /F "tokens=1-9 delims=,}{=" %%f in ("%%e") do ( rem // Code inside of the loop... ) ) rem // Code after the loop...

wmic命令产生的Unicode输出没有通过for /F循环正确地转换为ANSI文本,还有一些孤立的回车字符,这会干扰解析。 for /F循环的附加功能for /F通用和可靠的方式去除这些伪像。

总结

以上是小编为你收集整理的脚本忽略退出命令并跳出functionBATCH / CMD全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

batch filefunction需要太多的时间来执行

batch filefunction需要太多的时间来执行

我写了一个函数,从完整的pathstring获取文件名。 但是我写的子程序需要花费太多的时间(约4秒)来执行。 我想了解为什么。

这里是batch file

@echo off set fullPath=\serverDir1Dir Number 2Dir3Dir4abc.txt echo %fullPath% call:giveFileName "%fullPath%" finalName echo After Function call fileName: %finalName% Good Job goto:eof :giveFileName SETLOCAL set fileName=%~nX1 ::echo here is fileNmae %fileName% (ENDLOCAL&set %~2=%fileName% ) goto:eof

如何在批处理中find特定的文件名并切换到该目录?

如何批量使用“IF EXIST”?

* .bat和* .cmd文件有什么区别?

启动一个从batch file隐藏的exe文件

batch file:用数字/计数器列出当前目录中的所有文件夹

Windowsbatch file – 在variables值中使用感叹号而不禁用延迟扩展

Cmd:使用batch file处理%date%variables失败

为什么命令启动参数/等待不正常?

使用VBA在给定目录中运行batch file

等待可执行文件完成运行

我相信正在进行LOCATE \serverDir1Dir Number 2Dir3Dir4abc.txt

当然,寻找这台服务器是昂贵的。

如果你删除了\server这是合理的光滑。

你可以试试这个( 没有任何保证! ):

@echo off set fullPath=\serverDir1Dir Number 2Dir3Dir4abc.txt echo %fullPath% call:giveFileName "%fullPath%" finalName echo After Function call fileName: %finalName% Good Job goto:eof :giveFileName SETLOCAL set "fileName=%~1" FOR /f %%a IN ('cmd /c "ECHO %fileName:=&echo(%"') DO set "fileName=%%a" (ENDLOCAL&set "%~2=%fileName%" ) goto:eof

继续Peter Wright的想法,CMD正在浪费时间寻找不存在的远程\server 。

您可以通过在另一个文件夹前添加路径来防止CMD。 但是,这只适用于你想要的只是文件名和/或扩展名。 如果你想要驱动器和/或路径,添加一个前缀显然会损坏结果。

另外,如果您将作业放在与ENDLOCAL相同的行上,则不需要使用圆括号。 但是因为你所做的只是设置文件名,然后立即返回值,你甚至不需要中间值,所以你根本不需要SETLOCAL。

@echo off setlocal set "fullPath=\serverDir1Dir Number 2Dir3Dir4abc.txt" echo %fullPath% call :giveFileName "%fullPath%" finalName echo After Function call fileName: %finalName% Good Job exit /b :giveFileName call :giveFileName2 "x%~1" %2 exit /b :giveFileName2 set "%~2=%~nX1" exit /b

通过使用FOR变量来获取名称和扩展名,可以使代码更加高效。 FOR变量使用与CALL参数相同的扩展修饰符。

@echo off setlocal set "fullPath=\serverDir1Dir Number 2Dir3Dir4abc.txt" echo %fullPath% call :giveFileName "%fullPath%" finalName echo After Function call fileName: %finalName% Good Job exit /b :giveFileName for %%F in ("x%~1") do set "%2=%%~nxF"

如果您不介意每次需要时重复FOR逻辑,则可以完全消除CALL。

@echo off setlocal set "fullPath=\serverDir1Dir Number 2Dir3Dir4abc.txt" echo %fullPath% for %%F in ("x%fullPath%") do set "finalName=%%~nxF" echo After FOR assignment: %finalName% Good Job exit /b

在这种情况下,这似乎工作得更快。

@echo off set "fullPath=\serverDir1Dir Number 2Dir3Dir4abc.txt" echo %fullPath% call :giveFileName "%fullPath%" finalName echo After Function call fileName: "%finalName%" Good Job pause goto :eof :giveFileName SETLOCAL set "fileName=%~1" set "fileName=%filename:~2%" for /f "delims=" %%a in ("%filename%") do set "filename=%%~nxa" ENDLOCAL&set "%~2=%fileName%" goto:eof

c# – MYSQL中不存在Canonical Function“EntityFunctions.TruncateTime”

c# – MYSQL中不存在Canonical Function“EntityFunctions.TruncateTime”

我正在尝试运行此查询:

DateTime DDate=DateTime.Today; //Today's date without Time
var v= db.measurements.Where(m => EntityFunctions.TruncateTime(m.InDate) == DDate);

它只返回那两个日期相等的对象,忽略时间部分.

但我收到:

{“FUNCTION [数据库] .TruncateTime不存在”}

堆栈跟踪:

at MysqL.Data.MysqLClient.MysqLStream.ReadPacket()
at MysqL.Data.MysqLClient.NativeDriver.GetResult(Int32& affectedRow,Int64& insertedId)
at MysqL.Data.MysqLClient.Driver.GetResult(Int32 statementId,Int32& affectedRows,Int64& insertedId)
at MysqL.Data.MysqLClient.Driver.NextResult(Int32 statementId,Boolean force)
at MysqL.Data.MysqLClient.MysqLDataReader.NextResult()
at MysqL.Data.MysqLClient.MysqLCommand.ExecuteReader(CommandBehavior behavior)
at MysqL.Data.Entity.EFMysqLCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.EntityClient.EntityCommandDeFinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior behavior)

我正在使用:

> C#Visual Studio 2010
> EntityFramework 4数据库优先
> NetFramework 4
> MysqL Server 5.6

MysqL.Data和MysqL.Data.Entity的版本是6.6.5.0

TruncateTime is supported by MySQL.
Same thing happened to this person.

最佳答案
我无法解决它,所以我只是在数据库中创建了一个名为“TruncateTime”的函数.

Create FUNCTION TruncateTime(dateValue DateTime) RETURNS date
return Date(dateValue);

它有效,但我不喜欢它.

这些人做了类似的事情:

Alternative to EntityFunctions.AddSeconds for MySQL

CurrentUtcDateTime does not exist – Entity Framework and MySql

所以现在我认为这可能是不必要的,我可以直接从数据库中调用它并仍然获取实体,如下所示:

var x = db.ExecuteStoreQuery

就这样.

comboBox 的 itemMatchingFunction & labelToItemFunction

comboBox 的 itemMatchingFunction & labelToItemFunction

一天闲来无事,研究一下comboBox的应用,发现这两个方法,咋一看还有点不知所云,所以下定决心研究一下到底用来做啥的。

itemmatchingFunction 

就是在提示输入区输入字符用来搜索时的回调函数。它是在textInput change时候触发的,会去按顺序匹配(忽略大小写)首先找到的那一项并选中它。

但是很多时候我们需要自定义一下搜索的规则,譬如我们不想它从开头开始严格匹配,只要包含了输入的字符就显示包含输入字符最接近位置的那一项。它返回的是一个vector<int>,然后comBoxBox回选中vector中第一个index。代码见下面。

  labelToItemFunction

 就是你再搜索时,如果没有搜索到匹配的值,那么就返回这个函数的返回值。所以如果你想在没有搜索到就添加一项到comboBox的数据源,就要用到这个函数了。(代码见下面)

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:view="com.view.*">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g.,services,value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.collections.ArrayList;
			
			import spark.components.ComboBox;
			import spark.events.IndexChangeEvent;
			[Bindable]
			public var complexDP:ArrayCollection = new ArrayCollection(
				[    {ingredient:"Salmon",category:"Meat"},{ingredient:"Potato",category:"Starch"},{ingredient:"Cucumber",category:"vegetable"},{ingredient:"Steak",{ingredient:"Rice",{ingredient:"Cumin",category:"Spice"}
				]                
			);
			
			private function myLabelFunction(item:Object):String
			{
				return item ? item.name + " " + item.phone : "";
			}
			
			private function myMatchingFunction(comboBox:ComboBox,inputText:String):Vector.<int>
			{
				var vec:Vector.<int> = new Vector.<int>();
				var maxIndex:int = -1;
				var findindex:int;
				for(var i:int; i < complexDP.length; i++)
				{
					var index:int = String(complexDP.getItemAt(i).ingredient).indexOf(inputText);
					if( index > 0)
					{
						if(maxIndex == -1 || maxIndex > index)
						{
							maxIndex = index;
							findindex = i;
						}
					}
				}
				vec.push(findindex);
				return vec;
			}
			
			private function myLabelToItemFunction(input:String):*
			{
				return {ingredient:input,category:"mystery"};
			}  
			
			protected function bcc_changeHandler(event:IndexChangeEvent):void
			{
				if(complexDP.getItemIndex(bcc.selectedItem) == -1)
				{
					complexDP.addItem(bcc.selectedItem);
				}
			}
		]]>
	</fx:Script>
	<s:layout>
		<s:VerticalLayout/>
	</s:layout>
	<s:ComboBox 
		id="bcc"
		dataProvider="{complexDP}" 
		itemmatchingFunction="myMatchingFunction"
		change="bcc_changeHandler(event)"
		labelToItemFunction="myLabelToItemFunction"
		width="150" 
		selectedindex="0" 
		labelField="ingredient"/>  
</s:Application>

db.students.batchInsert is not a function :@(shell):1:1

db.students.batchInsert is not a function :@(shell):1:1

按照《mongdb 权威指南》当使用 version 3.4.1 版本的 mongodb,其中使用 batchInsert 函数进行对 students 集合进行批量插入  

db.students.batchInsert([{"classid" : 1, "age" : 20, "name" : "kobe"},  
{"classid" : 1, "age" : 23, "name" : "nash"}, 
{"classid" : 2, "age" : 18, "name" : "james"},  
{"classid" : 2, "age" : 19, "name" : "wade"},  
{"classid" : 2, "age" : 19, "name" : "bosh"},  
{"classid" : 2, "age" : 25, "name" : "allen"},  
{"classid" : 1, "age" : 19, "name" : "howard"},  
{"classid" : 1, "age" : 22, "name" : "paul" },  
{"classid" : 2, "age" : 24, "name" : "shane"}]);

插入失败,报如下错误:

2018-02-26T21:08:40.382+0800 E QUERY [main] TypeError: db.students.batchInsert is not a function :@(shell):1:1

原因:书中示例 batchInsert 是按照 version:2.4.0 运行的,到本版本已经废弃该方法

解决方法:直接使用 insert 实现对 students 集合批量插入

db.students.insert([{"classid" : 1, "age" : 20, "name" : "kobe"},  
{"classid" : 1, "age" : 23, "name" : "nash"}, 
{"classid" : 2, "age" : 18, "name" : "james"},  
{"classid" : 2, "age" : 19, "name" : "wade"},  
{"classid" : 2, "age" : 19, "name" : "bosh"},  
{"classid" : 2, "age" : 25, "name" : "allen"},  
{"classid" : 1, "age" : 19, "name" : "howard"},  
{"classid" : 1, "age" : 22, "name" : "paul" },  
{"classid" : 2, "age" : 24, "name" : "shane"}]);  

db.students.find()

控制台输出如下,插入成功


// Command #1:
// Execution time: 0.0s
// Result:
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 9,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})


// Command #2:
// db.students.find()
// Execution time: 0.0s
// Result:
{ "_id" : ObjectId("5a940a3f379afc334959cacc"), "classid" : 1, "age" : 20, "name" : "kobe" }
{ "_id" : ObjectId("5a940a3f379afc334959cacd"), "classid" : 1, "age" : 23, "name" : "nash" }
{ "_id" : ObjectId("5a940a3f379afc334959cace"), "classid" : 2, "age" : 18, "name" : "james" }
{ "_id" : ObjectId("5a940a3f379afc334959cacf"), "classid" : 2, "age" : 19, "name" : "wade" }
{ "_id" : ObjectId("5a940a3f379afc334959cad0"), "classid" : 2, "age" : 19, "name" : "bosh" }
{ "_id" : ObjectId("5a940a3f379afc334959cad1"), "classid" : 2, "age" : 25, "name" : "allen" }
{ "_id" : ObjectId("5a940a3f379afc334959cad2"), "classid" : 1, "age" : 19, "name" : "howard" }
{ "_id" : ObjectId("5a940a3f379afc334959cad3"), "classid" : 1, "age" : 22, "name" : "paul" }
{ "_id" : ObjectId("5a940a3f379afc334959cad4"), "classid" : 2, "age" : 24, "name" : "shane" }

今天关于脚本忽略退出命令并跳出functionBATCH / CMD跳出脚本错误的分享就到这里,希望大家有所收获,若想了解更多关于batch filefunction需要太多的时间来执行、c# – MYSQL中不存在Canonical Function“EntityFunctions.TruncateTime”、comboBox 的 itemMatchingFunction & labelToItemFunction、db.students.batchInsert is not a function :@(shell):1:1等相关知识,可以在本站进行查询。

本文标签: