Articles of cmd

从非特权用户命令行中找出Windows版本

我需要一种方法来找出我使用简单的命令行工具(没有PowerShell)运行的Windows版本。 我需要它从一个非特权用户工作,我需要能够parsing出Windows XP,Vista,服务器2008年和7之间的区别。我目前使用: wmic os get Caption但失败时用户没有权限运行wmic。 更新:为了澄清,我需要这个命令不打破不同的服务包级别等,这可能会排除parsing一个特定的版本号。 另外,如果您查看Windows版本的这个列表 ,您将看到在Windows 7和服务器2008 r2上报告的数字是相同的。

我如何逃避一个任意的string作为Windows中的命令行参数?

我有一个string列表,我想在一个Windows命令行调用中将这些string作为parameter passing。 对于简单的字母数字string,只需逐字传递: > script.pl foo bar baz yes no foo bar baz yes no 我明白,如果一个参数包含空格或双引号,我需要反斜杠 – 转义双引号和反斜杠,然后双引号。 > script.pl foo bar baz "\"yes\"\\\"no\"" foo bar baz "yes"\"no" 但是,当我尝试通过字面百分号的参数时,发生这种情况: > script.pl %PATH% C:\Program Files\PHP\;C:\spaceless\perl\bin\;C:\Program Files\IBM\Java60\bin; (…etc.) 双引号不起作用: > script.pl "%PATH%" C:\Program Files\PHP\;C:\spaceless\perl\bin\;C:\Program Files\IBM\Java60\bin; (…etc.) 也不反斜杠(注意输出中反斜杠是如何存在的): > script.pl \%PATH\% \%PATH\% 而且,对于反斜杠转义的反斜线,这些规则是不一致的: > script.pl "\\yes\\" \\yes\ > […]

使用QProcessEnvironment更改cmd.exe的PATH环境variables

我想从Qt应用程序启动具有特定path的cmd.exe。 我在QProcessEnvironment中插入“path”并将该环境设置为QProcess。 然后我开始读取“cmd”。 在命令提示符下,path与调用应用程序的path相同,而不是我刚刚设置的path。 我错过了什么? 我在windows 8.1.s上使用了Qt 5.2.0与mingw和Qt-creator 3.0.0 QProcess process(this); QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); env.insert("Path", "MyPath"); process.setProcessEnvironment(env); QStringList args; args << "/D" << "/K" << "dir"; process.startDetached("cmd", args);

django-admin.py startproject打开记事本,而不是创build一个项目

嘿,所以基本上当我尝试django-admin.py startproject mysite我的记事本与django-admin.py文件打开,而不是创build一个新的实际项目。 我在窗户上,就在昨天我创build了项目,一切都很好。

Windows用户环境variables与系统环境variables

在Windows中,是否有任何shell / Powershell命令分别列出用户环境variables和系统环境variables。 如果我做 – SET TEMP Windows将显示“用户环境variables”而不是“系统variables”。 我正在寻找shell命令/开关来分别显示这些variables。

在Windows 10 cmd中切换JDK版本

有没有办法在cmd中轻松更改JDK版本? 就像在Mac上的版本。 在Mac上更改默认的JDK 。

如何从DOS批处理命令发送电子邮件?

我有一个batch file在DOS中做一些检查,我需要发出一封电子邮件,当它完成。 我在interwebz上find了一些解决scheme,但其中大多数都是第三方,或者只是在Outlook中打开一条新消息。 我需要命令发送一个完整的电子邮件,而不需要任何人为的交互。 如果有问题,我们在这里使用MS Exchange。 谢谢!

Winapi:获取具有特定文件句柄的进程

目前我有一个软件,它有一个文件filter驱动程序,在安装软件时,驱动程序以这种方式启动服务: CreateService(serviceManager, name, displayName, SERVICE_START | DELETE | SERVICE_QUERY_STATUS | SERVICE_STOP, SERVICE_FILE_SYSTEM_DRIVER, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, path, NULL, NULL, NULL, NULL, NULL); 其中path是C:\Program Files(x86)\TSU\driver\TSUfsd.sys 。 我遇到的问题是在卸载软件的过程中。 当软件试图删除TSUfsd.sys文件时,它使我拒绝访问。 我已经检查过软件是如何删除驱动程序的,并且使用DeleteService函数删除它,并等待服务将其状态从SERVICE_STOP_PENDING更改为SERVICE_STOPPED ,如果在一段时间之后没有发生,则获取服务PID和使用ProcessTerminate杀死它,然后尝试使用rmdir /S /QC:\Program Files(x86)\TSU\删除该文件。 我试图find可能有文件句柄(使用Process Explorer)的进程,但是找不到任何文件。 然后我想也许这个服务还活着,所以我input了sc query TSUfsd但是服务也没有了。 我也尝试更改权限并将完全权限授予我的用户,但同样的错误仍然发生。 所以我的问题是: 有没有其他的方法来检查哪个进程(或其他)可以拥有一个文件? 我也注意到,每当我尝试用Cygwin( rm TSUfsd.sys )删除文件时,它都会删除文件,而不会出现问题。 用cmd( del /f <filename> )和cygwin删除文件有什么区别?

在Windows中杀死batch file的方式,使其子项也被杀死

我需要从一个cmd启动一个exe (包装EXE,所以我可以提供一些命令行选项)。 问题是,从cmd调用exe不会使包装完全透明:如果.exe挂起,杀死cmd不会杀死exe文件。 我也需要它来杀死exe文件。 我可以做到这一点在纯Windows(从XP上),而不添加任何依赖? 在Bash中,你有exec ,用所提供的命令replaceshell进程。 这对于编写包装脚本非常方便,使得包装过程完全透明。 我知道Windows缺lessexecve()使这成为可能,但我只对父母杀害它的孩子部分感兴趣。 澄清:我没有find杀死exe的方法,我正在寻找包装 (启动)exe的方法,以便使用标准方式(例如,Ctrl + C或从任务pipe理器)杀死它。 例如,我可以创build一个lnk文件(Windows快捷方式)并获得这种行为,但我想从一个脚本来完成(对于一个,lnks只能使用绝对path,我不能部署)。 谢谢。

PDF文件不能从Visual Studio,C ++中的ShellExecute函数打开

我正在尝试安装我的应用程序完成后打开“Read Me.pdf”文件。 我正在尝试使用打开此PDF文件 ShellExecute( NULL, _T("open"), csReadMe, NULL, csFileDir, SW_SHOWNORMAL ); 也试过了 ShellExecute( NULL, NULL, csReadMe, NULL, csFileDir, SW_SHOWNORMAL ); 可能是,我有一个关于Adobe Reader 11.02版本的问题,因为在早期版本的Adobe Reader中,文件正在打开,而在AR 11.02中,进程在ShellExecute()调用时显示在Task Manager ,但Adobe Reader不启动。 我使用VS 2012与Win 8。 如果我明确地打开该文件或从命令提示符,那么它很容易打开。 我发现哪里出了问题。 提前致谢。