草庐IT

get_var_if_set

全部标签

windows - 批处理文件 : get absolute path of parent directory

这个问题在这里已经有了答案:Howtogetwindowsbatch'sparentfolder(4个答案)关闭3年前。我最近遇到需要获取当前正在执行的批处理文件的父目录的情况。在google和stackoverflow上搜索了解决方案,但可以找到一个干净简单的解决方案。

windows - 想要将 4 个用户输入传递给 Windows 批处理文件中的 4 个 SET 命令

我有一个非常基本的问题,关于如何将4个参数从文本文件传递到批处理文件中的4个设置命令。我的Param.txt文件包含以下内容。它是批处理运行之前的用户输入:START_OERIOD=Jan-15END_PERIOD=Jul-15RULE_NAME=Multi_LRFILE_NAME=ACT_multiperiod.txt我的Impot.bat文件需要接收这些输入:SETSTART_PERIOD=Jan-15SETEND_PERIOD=Jul-15SETRULE_NAME=Multi_LRSETFILE_NAME=ACT_multi_period.txt我找到了很多这样的例子,但我很困惑

windows - 我如何在某些 'if' 语句中使用 Windows 版本标题来确定要检查哪些 Windows 更新?

我正在编写一个令人遗憾的脚本,旨在基本上从Windows7、8和8.1中消除Windows10的任何痕迹。几乎是this的脚本版本程序。脚本即将完成(我认为),但似乎我的某些if语句中的逻辑即使变量不正确也会执行。这里是要记住的部分,为了清楚起见,在脚本的前面添加了创建$Caption变量的行:$Caption=(Get-WmiObjectwin32_operatingsystem).captionif($Caption='Windows8.1Professional'){if(Get-Hotfix-idKB3044374){Wusa/uninstall/kb:3044374/quie

windows - 命令不在 .BAT if 语句中执行

我有一个批处理文件,它将检查CPU架构(32位或64位),并相应地执行命令。它将找到特定的文件夹并执行某些.exe文件。我的问题是,如果我在if语句中有一个语句,例如。'echoSometext',它会显示正常,这意味着对架构的检查没有问题。但是只要我的If语句中有多个命令,批处理文件就会立即退出。到目前为止我的代码:@echooffSET"ARCH=x64"IFNOTEXIST"%SystemRoot%\SysWOW64\cmd.exe"(IFNOTDEFINEDPROCESSOR_ARCHITEW6432SET"ARCH=x86")IF"%ARCH%"=="x64"(cd\cdPr

PowerShell 的 Windows 10 : How to make new Personalisation settings active immediately,?

我可能会更改Windows10的个性化设置,例如背景照片,通过使用RegEdit手动更改正确的注册表项或使用具有正确参数的Powershell命令“New-ItemPropery”更改正确的注册表项。我的经验:注册表中的新个性化设置——我可以使用RegEdit检查是否所有设置都已正确更改——在下次Windows重新启动或Windows用户注销+登录后才处于事件状态。顺便说一句,我正在使用免费工具“WhatChanged”来检测个性化设置中简单更改后的注册表更改。因此,目前我能够以Windows注销+登录的价格更改背景图像。但是,如果我对Windows10的图形配置工具执行相同操作,通过

windows - 使用 set/p 更新批处理脚本的变量始终包含最后一个值

我正在尝试使用set/p命令在循环中调整Windows批处理变量。键盘输入后变量仍然包含旧值。我读过通过set/p设置的变量只有本地范围。但我不明白“本地”在这里的真正含义。@echooffsetlocalEnableDelayedExpansionseta=4echoInitalA:%a%:LoopLabelMODE|find%a%>nul2>&1IF%ERRORLEVEL%NEQ0(set/p"a=enternewa:"echoa=%a%gotoLoopLabel)输出是:InitalA:4enternewa:5a=4enternewa:6a=5enternewa:7a=6有没有人

windows - Powershell If 语句不接受多个 OR 条件

我有一个处理大量DNSA记录的powershell脚本,我正在尝试过滤掉默认记录(即“@”、“ForestDNSZones”等)。只是用一个简单的if语句来尝试这个似乎不起作用。代码示例:$zoneARecords=Get-DnsServerResourceRecord-ComputerName$DNSserver-ZoneName$zoneName|?{$_.RecordType-eq"A"}foreach($recordin$zoneARecords){$hostName=$record.HostNameif($hostName-ine"gc"-or"DomainDnsZones"

c++ - 使用 IOCTL_CHANGER_GET_PRODUCT_DATA 调用 DeviceIoControl 时出现 ERROR_ACCESS_DENIED

我的任务是获取安装为磁盘的设备的VendorId和ProductId。代码看起来像这样:intmain(){HANDLEhDevice;charcDisk='c';//GetmetadataabouttheC:\disk//Buildthelogicaldrivepathandgetthedrivedevicehandlestd::wstringlogicalDrive=L"\\\\.\\";wchar_tdrive[3];drive[0]=cDisk;drive[1]=L':';drive[2]=L'\0';logicalDrive.append(drive);hDevice=Cre

windows - 批处理文件,字符串变量比较,if语句

我试图用一个简单的字符串来比较一个文件的日志,但是它没有进入if比较。我在echo语句中将“connectfailed”作为我的第二个令牌,但没有得到if语句的任何结果。@echooffremstartcmd.exefor/f"tokens=2delims=:"%%nIN(C:\Users\rohit.bagjani\Desktop\result\telnetresult.txt)DO(SETstr1="Connectfailed"echo%%nif\i%str1%==%%necho"true")echo.pause 最佳答案 第一

windows - 丢失批处理文件 FOR 语句的 (set) 元素中命令的错误输出

我有一个批处理文件,它在git存储库上执行gitpull。我想在控制台窗口和日志文件中查看输出。我在批处理文件中有一堆脚本代码可以让我进入正确的目录,然后它运行以下命令:FOR/F"tokens=*"%%fIN('gitpull--ff-only')DO(SETz=%%fECHO!z:^|=^^^|!2>&1|C:\Bin\tee.exe-a%logFile%)tee.exe是一个小程序,它将输出发送到控制台和指定的日志文件。只要git命令成功,这就可以正常工作。我在控制台和日志文件中都看到了更改文件等的列表。但是,如果git命令生成错误,例如pull会覆盖本地更改,我会在控制台窗口中