Articles of cmd

奇怪的Windows DIR命令行为

当我在名字中查找一个带有数字的文件时,我意外地发现了这个问题。 当我input: dir * 号码 * (其中数字表示0到9之间的任何数字,星号和数字之间没有空格) 在cmd.exe命令提示符处,它返回的各种文件不会出现在任何符合search条件的文件中。 有什么奇怪的是,根据目录,一些数字将工作,而不是其他人。 例如,在与网站相关的目录中,input以下内容: dir *4* 而返回的是: C:\ Ampps \ www \ includes \ pages目录 04/30/2012 03:55 PM 153 inventory_list_retrieve.php 06/18/2012 11:17 AM 6,756 ix.html 06/19/2012 01:47 PM 257,501 jquery.1.7.1.js 3个文件264,410字节 0 Dir(s)362,280,906,752字节免费 这对我来说没有任何意义。 任何线索? 问题是摆在堆栈溢出,因为在批处理程序中DIR命令经常与FOR组合。 奇怪的DIR行为似乎使批处理程序可能不可靠,如果他们使用DIR命令。 编辑:(附加说明)。 虽然已经过了很多时间,但是我发现了另外一个怪癖,几乎要花费我很多的工作。 我想删除特定目录树中的所有.htm文件。 我在做之前意识到*.htm与.html文件匹配。 另外, *.man与.manifest匹配,可能还有其他的。 删除该特定目录中的所有.html文件,至less可以说是令人不安的。

我怎样才能在git-bash中执行命令位于与空间文件夹,如“程序文件”的窗口?

当我使用git bash的时候,我想要调用一个命令,这个命令在我的$PATH (实际上是在我的%PATH% )上,但是如果这个命令驻留在一个文件夹中有空格的地方,它就无法运行。 例如,如果该程序在C:\Program Files\whatever\aCmd.exe并且我在bash上键入aCmd ,则表示“Program”不是有效的程序等。 我所做的是重新安装程序在一个没有空格的文件夹中,但最近我的同事们开始离开git-gui,并且使用了git-bash,而经常出现的问题是“如何执行aCmd”,当我告诉他们重新安装它就像¬¬一样 问:如何执行git-bash中位于文件夹中的命令?

Windows脚本FOR命令重命名目录中的所有文件

我试图在命令提示符下使用FOR命令重命名Windows目录中的所有文件,如下所示: for %1 in (*.*) do ren %1 test%1 例如,这将文件enc1.ctl重命名为testenc1.ctl enc2.ctl重命名为testenc2.ctl 那不是我想要的。 我想要的是enc1.ctl改名为test1.ctl enc2.ctl改名为test2.ctl 我怎么做? @Akelunuk:谢谢,那种工作,但我有文件名称 h263_enc_random_pixels_1.ctl,h263_enc_random_pixels_2.ctl我想重命名为 test1.ctl和test2.ctl分别 那么怎么样?

从csv文件读取并根据第一列值提取某些数据列

这是我的第一批程序,我一直在网上search,但仍然在努力写出一个解决scheme。 我有以下的CSV文件: "RH",2013/06/15 02:14:58 -0400,"X","LQ3SUEEWPWKL6",005, "FH",01 "SH",2013/06/14 00:00:00 -0400,2013/06/14 23:59:59 -0400,"LQ3SUEEWPWKL6","" "CH","TransactionID","InvoiceID", …… 我试图写一个简单的程序来执行以下操作: 如果column1 =“RH”,则提取column2的值(2013/06/15 02:14:58 -0400) 如果column1 =“SH”,则提取第4列值(LQ3SUEEWPWKL6) 和pipe道输出到一个文件。 这是我的代码到目前为止,但如果条件不适合我 @echo off :: Set input file in variable ::Set _InputFile=%1 :: Store input line into different variables FOR /F "tokens=1-18* delims=," %%A IN (%_InputFile%) DO ( Set _var1=%%A Set _var2=%%B Set _var3=%%C Set […]

在redirect文件中显示带有重音的字符(> output.txt)

例 mode con: cp>%tmp%\output.tmp notepad %tmp%\output.tmp 显示: Statut du p‚riph‚rique CON: ————————— Page de codesÿ: 850 代替: Statut du périphérique CON: ————————— Page de codes : 850 我也尝试过使用chcp 65001和1252 你知道一个解决办法吗? 编辑: 我使用truetype Lucida字体,即使我type %tmp%\output.tmp它也能在控制台中显示正确的字符,但不能在任何文本编辑器中显示。 我也试过: cmd /U /C "chcp 65001>nul &mode con: cp>%tmp%\output.tmp" 和 cmd /A /C "chcp 65001>nul &mode con: cp>%tmp%\output.tmp" 没有成功

Windows:使用CMD(或Java)从非特权运行特权命令

我将有一个以pipe理员身份运行并监听端口的服务。 我的GUI程序将与pipe理员服务通话以获取需要pipe理员权限的项目。 如果服务还没有运行,我将需要启动它。 我如何让我的GUI程序以pipe理员身份运行命令? 我假设用户会被问到是否要继续。 我希望有一些我可以键入一个CMD窗口,因为这应该很适合我的Java程序。 我在想,像run-as-admin javaw my-service.jar这里run-as-admin是询问是否继续的命令。

在java(w).exe进程列表中查找.jar的名称

在我的公司环境中,这个脚本可以在大量的计算机上运行,​​而且我偶尔会要求用户杀死,因为它会不时被锁住。 我正在想办法自己杀死它。 我注意到我可以使用pslist远程列表,然后用pskill杀死它。 现在的问题是,当有人运行多个Java应用程序(例如Eclipse,这个应用程序,另一个java.exe应用程序…)时,要在pslist中杀死正确的应用程序变得非常棘手,看起来像这样: javaw 4214 .. … javaw 5000 .. … 等等。 这些是不同的应用程序,但它们都从javaw.exe运行。 有没有办法find他们正在运行的.jar的名称,所以我可以根据这个杀死进程?

出现错误时,启动/等待/ b不退出程序

我有一个batch file,将运行其他文件(让我们称之为程序文件)如.bat,.exe,.py等… if Not Exist JobStreamUnitTest_CreateTextPython_4-27-2015.txt ( Start /wait /b C:\Users\blee2\Documents\UnitTest\CreateTextFile.py || exit %errorlevel% copy /y nul JobStreamUnitTest_CreateTextPython_4-27-2015.txt ) if Not Exist JobStreamUnitTest_CreateTextBatch_4-27-2015.txt ( Start /wait /b C:\Users\blee2\Documents\UnitTest\CreateNewFile.bat || exit %errorlevel% copy /y nul JobStreamUnitTest_CreateTextBatch_4-27-2015.txt ) if Not Exist JobStreamUnitTest_CreateTextConsole_4-27-2015.txt ( Start /wait /b C:\Users\blee2\Documents\UnitTest\TestConsole.exe apple || exit %errorlevel% copy /y nul JobStreamUnitTest_CreateTextConsole_4-27-2015.txt ) if […]

使用getRuntime().exe(cmd)更改registry项的值不会更改registry值,即使操作已成功结束

我试图从我的Java应用程序更改registry值。 我使用这个命令: LoudnessEqualizationToggle.execCmdNoReturn("reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\MMDevices\\Audio\\Render\\"+guid+"\\FxProperties\"" + " /f /v \"{E0A941A0-88A2-4df5-8D6B-DD20BB06E8FB},4\" /t REG_DWORD /d \""+((activateLEOnKey) ? 1 : 0)+"\""); 凡guid是{d348b8e8-3118-4a9c-9b43-422647b555ca} activateLEOnKey是布尔值 execCmdNoReturn函数: public static final void execCmdNoReturn(String cmd) { try { Scanner s = new Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A"); System.out.println("Command:"+cmd); System.out.println("Printing executed data"); while (s.hasNext()) { System.out.println(s.next()); } } catch (IOException ex) { Logger.getLogger(LoudnessEqualizationToggle.class.getName()).log(Level.SEVERE, null, ex); } } 一切正常。 […]

loop&nslookup的批处理脚本

我之前看过这个问题,但没有解决我的问题。 我只是试图遍历包含主机名的文本文件。 当我从命令行尝试相同的命令(省略额外的百分号)时,它将工作一两次然后给出下面指出的错误。 将其作为batch file运行,batch file将不做任何事情而退出。 这一个真的难倒我。 以下是我的batch file中的代码: @echo off set OUTPUTFILE=Results/Results.txt set lookup=HostNames.txt FOR /F %%i in (%lookup%) do FOR /F "usebackq skip=3 delims=: tokens=2" %j in (`nslookup %i`) do @echo %%i %%j >> %OUTPUTFILE% 在一个命令行我得到: 我)在这个时候是意外的。 当我在命令行中运行它时,我将在batch file中运行时取出其他百分号。 我也在命令行中使用绝对path,以确保这不是我设置的环境variables的问题。