Articles of cmd

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。 如果我明确地打开该文件或从命令提示符,那么它很容易打开。 我发现哪里出了问题。 提前致谢。

批量复制多个文本文件的第一行

我需要批处理代码将第一行的多个文本文件复制到一个新的文本文件中,并将原始文件名追加到每一行,并且如果可能,可以将批处理代码编辑为任何想要的行号。 谢谢

捕获输出命令CMD

平台Windows XP 当写一个命令文件(.bat)时,我怎样才能将命令的输出“捕捉”到一个variables中? 我想要做这样的事情 SET CR='dir /tw /-c b.bat | findstr /B "[0-9]"' 但是这不起作用 问候Stefan PS不,我不能下载grep,cygwin或任何其他软件,它必须是CMD DS

Windows批处理 – 循环播放文件夹string并parsing出最后一个文件夹名称

我需要抓取当前正在执行的batch file的文件夹名称。 我一直试图循环使用以下语法(目前是错误的)当前目录: set mydir = %~p0 for /F "delims=\" %i IN (%mydir%) DO @echo %i 几个问题,我似乎无法通过'mydir'variables值作为searchstring。 如果我传递命令,它似乎只能工作; 我有语法错误,不能解决原因。 我的想法是用“\”分隔符来遍历文件夹string,但这也会导致问题。 如果我在每个循环上设置一个variables,那么最后一个值将是当前文件夹名称。 例如,给定以下path: C:\ Folder1中\文件夹2 \ Folder3 \ Archive.bat 我希望parsing出“Folder3”的值。 我需要parsing这个值,因为它的名字是我将在batch file中创build的另一个文件夹的一部分。 非常感谢任何人都可以帮忙。 我可能会彻底地把错误的树叫出来,所以任何其他的方法都会被大大接受。

如何在命令行之间切换python 2.7到python 3?

我试图find最好的方式来切换两个python编译器2.7到3.3如果我从cmd运行python,我会使用类似 python ex1.py 在那里我从窗口环境variables从我的电脑属性设置“python”指向python 3.3或2.7的一个或另一个。 我想知道有一个简单的方法来从cmd行之间切换两个?

在C ++中查看system()调用的输出

我如何查看系统命令的输出。 例如: int _tmain(int argc, _TCHAR* argv[]) { system("set PATH=%PATH%;C:/Program Files (x86)/myFolder/bin"); system("cd C:/thisfolder/"); std::cin.get(); return 0; } 当我在Visual Studio中运行该程序时,会给我一个黑屏,我看不到正在运行的命令。 我需要它,所以我可以查看它是否有效。 谢谢!

32位cmd.exe如何在Windows Server 2003 x64上启动64位cmd.exe?

这是Windows Server 2008 64位上的7-Zip执行权限的后续操作 。 我试图避免有一个过于复杂的构build过程,以制作多个7-Zip EXE文件。 我只需要一个.cmd来读取一些64位registry项后启动我的Java进程。 但是,要成功使用一个EXE文件,它需要是32位。 上面的问题find了让Windows Server 2008检测到32位cmd.exe并将其交换到64位的技巧。 有没有办法在Windows Server 2003上做到这一点? 有一个Windows修补程序,它允许reg.exe以32位模式访问64位条目,但我无法确定这是在客户的服务器上,因此解决方法是不可行的。

我可以closures回声这个“for”循环从cmdinput?

我试图用这个优秀的答案 。 有没有办法让一个命令行执行以下(删除所有大小为零的文件),而不打印任何输出? for /r %F in (*) do if %~zF==0 del "%F" (它显示所有扩展的命令,也是当大小不为零时) 我已经尝试使用如何redirect标准错误在CMD.EXE空 (尝试>,1>和2>)没有用…