小编bla*_*k3r的帖子

在批处理文件中测试参数是否为空的正确方法是什么?

我需要测试是否设置了变量.我已经尝试了几种技术,但他们忽视了,只要%1用双引号包围时,如情况%1"c:\some path with spaces".

IF NOT %1 GOTO MyLabel // This is invalid syntax
IF "%1" == "" GOTO MyLabel // Works unless %1 has double quotes which fatally kills bat execution
IF %1 == GOTO MyLabel // Gives an unexpected GOTO error.
Run Code Online (Sandbox Code Playgroud)

根据此站点,这些是受支持的IF语法类型.所以,我没有办法做到这一点.

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
Run Code Online (Sandbox Code Playgroud)

windows shell cmd batch-file

194
推荐指数
9
解决办法
31万
查看次数

Environment.GetFolderPath(... CommonApplicationData)仍然在Vista上返回"C:\ Documents and Settings \"

据我了解,你应该使用这个Environment.GetFolderPath方法,所以你有独立于操作系统的代码......

Windows XP使用C:\Documents and Settings\.Windows Vista使用C:\ProgramDataC:\Users.

我在Windows Vista计算机上使用下面的代码,它正在返回一个C:\Documents and Settings\目录而不是C:\ProgramData它应该...任何想法?

    string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
    try
    {
        File.CreateText(
            Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
            "\\mycompany\\uid");
        log.Debug("Created file successfully");
    }
    catch (Exception ex)
    {
        log.Error("Unable to create the uid file: ", ex);
    }
Run Code Online (Sandbox Code Playgroud)

.net c#

75
推荐指数
4
解决办法
10万
查看次数

为什么人们一直建议使用appConfig而不是使用设置文件?(.净)

我经常看到问题的答案如下:"我应该如何在我的.NET应用程序中存储设置?" 是通过手动将条目添加到app.config(或web.config)来编辑app.config文件,如下所示:

<configuration> 
  <appSettings>
    **<add key="ConfigValueName" value="ABC"/>**
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后,访问它们像:

string configValue = Configuration.AppSettings["ConfigValueName"];
Run Code Online (Sandbox Code Playgroud)

我将上面概述的方法称为"app.config"方法.我很少看到人们建议在项目中添加"设置"文件.我已经在网络上和堆栈溢出中看到了这么多次...我开始怀疑我是否遗漏了某些东西......因为我不确定为什么你使用这种方法而不是使用"设置" "档案.我没有进入.NET直到VS2005所以我有一个理论是这是VS2003中的事情是如何完成的,人们从未切换过?

推荐app.config方法的人的示例:

从我的观点来看,"设置文件"方法以下优点:

  1. 可用于同一界面的"应用程序设置"(所有用户通用的设置)和"用户"设置.
  2. 能够在visual studio中使用设置设计器支持.不易出错,然后直接编辑XML文件恕我直言.
  3. 重构 - 您可以重命名特定的设置名称,它将自动更新代码中的引用.
  4. 编译类型检查.
  5. 自动完成支持.
  6. 属性 - 网格功能.我发现PropertyGrid控件是一种非常简单的方法来制作快速选项表单.你做的propertyGrid1.SelectedObject = Settings1.Default;就是你已经完成了.

如果您不确定"设置"文件方法的含义,请参阅此帖子,这是有人建议使用设置文件而不是app.confg的少数示例之一.

编辑:请理解:本主题的目的是弄清楚为什么人们会使用上面概述的app.config方法而不是设置文件方法.我遇到了设置文件方法的限制,并且有时被迫推出自己的自定义解决方案.这是一个完全不同的讨论.

.net app-config appsettings application-settings .net-2.0

28
推荐指数
2
解决办法
9178
查看次数

Node.js中的默认堆栈大小是多少?

我知道如何设置堆栈大小,这要归功于: 如何在Node.js中增加最大调用堆栈大小

但是,默认大小是多少?(即如何获得PHP等价物phpinfo())

callstack node.js

22
推荐指数
1
解决办法
1万
查看次数

21
推荐指数
3
解决办法
1万
查看次数

如何确定实际物理网卡的MAC地址 - 而不是VPN创建的虚拟网络接口(.NET C#)

背景

我试图从计算机中获取唯一的标识符,并希望每次都可以可靠地返回相同的MAC地址.相信我,我有使用MAC地址的原因,并阅读了许多关于备用唯一ID方法的帖子(是的,如果他们没有任何网卡,我会考虑).

问题

问题出在.NET中我无论如何都不知道特定的NetworkInterface是否是一个物理硬件网卡,例如"Nortel IPSECSHM Adapter - Packet Scheduler Miniport",它会在您连接到某些VPN或WiFi网络时添加.

我知道如何通过使用类似于此的代码获取Mac地址:

    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
    {
        log.Debug("NIC " + nic.OperationalStatus + " " + nic.NetworkInterfaceType + " " + nic.Speed + " " + nic.GetPhysicalAddress() + " " + nic.Description);
    }
Run Code Online (Sandbox Code Playgroud)

可以理解的是,没有100%的方法可以确保我获得内部网卡,但我想选择MAC地址来返回最不可能改变的给定机器.独立于诸如以下因素 - 无论是否连接到wifi ......通过某种类型的系绳连接进行连接......或者他们安装了一些新的vpn软件,增加了新的界面.

考虑的策略

1)选择第一个"Up"界面.这在我的笔记本电脑上失败了,因为"Packet Miniport"总是在运行.此外,如果我将手机连接到笔记本电脑,这也会显示为第一张卡.

2)选择最合适的类型......这个失败b/c基本上所有东西都显示为"以太网",包括WiFi适配器和我的iPHone网络连接.

3)选择具有IP地址的NIC.由于以下几个原因导致失败:1)网卡可能未连接到LAN 2)有多个可能具有IP地址的网卡.

4)只需发送所有MAC地址......问题是列表会根据安装的软件而改变,并且很难进行比较.

5)以最快的速度选择mac地址.我想这可能是我最好的选择.我认为可以说最快的界面通常是最永久的.

或者,可能还有其他方法可以检测.NET中的物理卡,或者如果您可以推荐一个提供不同信息的API调用,我会考虑调用其他API调用.

还有其他想法吗?

这里演示的是当我的iphone被束缚时上面的示例代码的输出:

DEBUG - NIC Down Ethernet 500000     0021E98BFBEF Apple Mobile Device Ethernet - Packet Scheduler Miniport
DEBUG - NIC Up   Ethernet 10000000 …
Run Code Online (Sandbox Code Playgroud)

.net c# networking mac-address uniqueidentifier

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

什么会导致任何.NET应用程序立即崩溃...除了我在Visual Studio中创建和调试的项目?

我的软件最近部署到一位客户,他说该应用程序在启动后立即崩溃.经过一些初步调试后,客户为我提供了远程访问其中一台无法运行该应用程序的计算机. 我发现崩溃并不是我的应用程序特有的.任何依赖于.NET框架的应用程序都会立即崩溃.

方便的是,安装了Visual Studio 2008,因此我在其上创建了一个快速的hello world应用程序,然后单击Debug.该应用程序工作正常.但是,当我试图在visual studio之外的/bin/Debug/HelloWorld.exe目录中执行生成的二进制文件时,它崩溃了.

我试过的东西清单(更新):

  • 我检查了"Everyone"对c:\ Windows的读取和执行权限.
  • 为了测试问题出在.NET Framework(而不是我的应用程序)上,我试图将Paint .NET下载到计算机上.设置前端以相同的方式崩溃.
  • 按照http://support.microsoft.com/kb/908077中所述执行.NET框架的修复(男孩这很有趣且耗时).没运气.
  • 安装.NET 3.5 SP1(之前它只有.NET 3.5)注意:我的应用程序的目标是2.0,所以我做了更多的远程...但我在过程中了解到.NET 3.5 SP1也更新了底层框架.
  • Ran Aaron Stebner的.NET安装验证工具.该工具表明.NET已成功安装.(我忘记了如果我检查了所有版本,但至少2.0工作).
  • 测试了一些针对.NET 2.0和.NET 3.5的迷你hello world应用程序,并且两者都以相同的方式崩溃.
  • 尝试通过windbg cmd行启动.NET应用程序.这样做允许我调用我的简单hello world应用程序.因此,简单的.NET hello world可以在windbg调用时使用,也可以在visual studio中通过debug启动...但如果我尝试独立执行它,则不会.

我使用WinDbg创建了一个转储文件.对我来说,这并不是一切.

FAULTING_IP:  mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010        test    byte ptr [eax+10h],10h

EXCEPTION_RECORD:  0012f710 -- (.exr 0x12f710) ExceptionAddress: 79f4ff9d (mscorwks!PEImage::GetEntryPointToken+0x00000021) ExceptionCode: c0000005 (Access violation)   ExceptionFlags: 00000000 NumberParameters: 2    Parameter[0]: 00000000    Parameter[1]: 00000010 Attempt to read from address 00000010

FAULTING_THREAD:  00000b44
PROCESS_NAME:  MyProcess.exe
ERROR_CODE: (NTSTATUS) …
Run Code Online (Sandbox Code Playgroud)

.net crash-dumps visual-studio-2008

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

在PhoneGap应用中显示Android中的状态栏(即防止全屏)

我有一个phonegap 3.0.0应用程序.我的应用程序涵盖状态栏(带时钟,接收信息等).由于我不是全屏游戏,这是不可取的.

我相信它是作为"全屏"应用运行的.

我在堆栈上找到了相反的帖子(即让应用程序全屏显示),并做了相反的建议.我想知道PhoneGap或者我用来创建项目的PhoneGap CLI是否发生了变化,因为我的应用程序显示全屏.

我试过这个:

  public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        super.setIntegerProperty("splashscreen", R.drawable.splash);

        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

        super.loadUrl(Config.getStartUrl(), 10000);
    }
Run Code Online (Sandbox Code Playgroud)

明确告诉它不要处于全屏模式....但它仍然显示全屏.

android android-layout cordova

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

ZigBee堆栈建议

我已经离开了ZigBee一段时间了.谁拥有最成熟的Zigbee堆栈?是Microchip,Chipcon还是Atmel?

RF模块的价格是否低于10美元?

我记得一段时间后某些堆栈存在一些许可问题......

(这个问题最初是在2009年提出的.截至2012年,我不认为Ember是领先的堆栈.看来德州仪器已成为主导的芯片组/堆栈......虽然,他们的堆栈确实似乎被锁定使用IAR糟糕的IDE会让我三思而后行.)

zigbee

11
推荐指数
2
解决办法
4307
查看次数

在Package Maker安装程序postflight脚本期间将应用程序添加到OSX"登录项"

我需要一种方法来从一个作为我的安装程序的一部分运行的postflight脚本向Login Items添加一个应用程序.它需要在10.5+上工作.优选地,它可以在bash脚本中工作.我的申请已经需要管理权.

我在这里找到的方法:带有参数的Mac OS登录项?似乎是在正确的轨道上(包括在下面)...但是当我在命令行上尝试它并且我不确定如何为所有用户安装或者如果我需要添加逻辑以检查是否在调用此代码之前,它已添加到启动项中.

#!/bin/bash
/usr/bin/osascript -e "tell application \"System Events\" to make new login item with properties { path: \"$1\", hidden:false } at end"
Run Code Online (Sandbox Code Playgroud)

我怀疑我也可以用launchd做点什么.但是,我不确定哪种方法是跨版本兼容性的最佳实践.

注意:我不想在我的应用程序中使用一些objective-c代码添加它.我需要安装程序来添加它. 目前,我所做的是在安装后启动应用程序,然后使用LSSharedFileListRef将其添加到代码中的Login Items ...可以在此处找到该方法的示例:如何在登录时打开应用程序?.这个不合适的原因是我需要在登录屏幕上通过命令行使用Apple Remote Desktop安装我的应用程序.因此,应用程序安装后无需自动启动.

macos bash packagemaker

9
推荐指数
1
解决办法
9921
查看次数