Articles of cmd

如何使用Delayed Variable Expansion来引用string中的variables

我正在尝试创build一个小脚本来执行轻量级模板replace任务,但是我正在用我想要的方式解除引用一个variables。 这是我的模板replacebatch file: @echo off echo ———— echo %~nx0% SETLOCAL ENABLEDELAYEDEXPANSION SET "src=%~1" SET "dst=%~2" ECHO %src% FOR /F "tokens=1,2* delims=%%" %%i IN (%src%) DO ( IF "%%k"=="" ( ECHO %%i >> %dst% ) ELSE ( SET "first=%%i" SET "middle=%%j" SET "last=%%k" SET "replace=!middle:~2,-1!" IF NOT "!first:~-1!"=="<" ( ECHO %%i >> %dst% ) ELSE IF […]

运行batch file时如何不打开Cmd窗口

我写的每个batch file打开一个Cmd窗口,并保持打开,直到程序完成。 在.bat文件中包含的命令string是什么,不打开CMD窗口或打开并立即隐藏它? 我必须留在MSW7 Pro内置编程的范围内。 现在,我只是玩味精命令得出这个想法。 为了成功,只有消息窗口本身应该出现在屏幕上。

通过CMD调用几个batch file不会阻塞

我试图用Python通过CMD一个接一个地调用几个install.bat文件。 每个bat文件都必须在交互式控制台窗口中显示,因为它要求某些用户的指令,而且python程序只有在每个cmd进程parsing后才会恢复。每个install.bat文件花费相当长的时间才能完成其进程。 我的代码如下: for game in games : print("———– Starting conversion for %s ———–" %game) subprocess.call("start cmd /C " + "Install.bat", cwd=os.path.join(gamesDosDir,game), shell=True) print("end") 但是shell里面的控制台窗口是一次启动的,在它们中的任何一个完成之前,出现“end”消息,而我希望它们一个接一个地出现,而不是到n + 1,直到n是1完成,控制台窗口closures(用户或自动/ K或/ C然后)。 我明白这是使用CMD的一些问题,因为呼叫应该被阻止。 如何解决? 另外,如果可能的话,如何保持它完全一样,并添加“Y”和“Y”作为默认的用户input?

JScript / Windows Script Host中的UNIX`exec`相当于

我有一个.js文件,这个文件是由命令行上的Node.js执行的。 我已经用npm设置了一切,把文件作为“bin”放到用户的path中。 我的问题是,因为文件以.js结尾,所以从命令行运行该文件会将其发送到基于JScript的Windows脚本宿主,而不是节点。 我试图编写一个JScript包装器,坐在myprogram.js ,由Windows Script Host执行,然后发送到Node.js. 不幸的是,WScript的Exec命令似乎不像UNIX的exec命令: var shell = new ActiveXObject("WScript.Shell"); var proc = shell.exec("node .\\Library\\executable.js"); while (proc.Status === 0) { WScript.Sleep(100); } WScript.Echo(proc.Status); 这缓冲了程序的输出,并通过某种JScript WshScriptExec对象公开它。 我需要一个脚本或一个function,或者其他方式,把整个terminal交给我启动的命令行脚本。 最有用的是,我想用正在执行的命令的进程(即UNIX- exec -y行为)replace正在执行的JScript进程。是否有任何方法可以执行此操作或以其他方式解决我的问题?

path前缀\ ?? \和\\?\

以\??\为前缀的path和以\\?\为前缀的path有什么不同\\?\ 在Windows 7 CMD线 DIR给出: \??\Volume{00000000-0000-0000-0000-000000000000}\ WMIC VOLUME LIST给出\\?\Volume{00000000-0000-0000-0000-000000000000}\ 谢谢 附加信息: 我在我的系统驱动器上创build了一个目录,放置了所有的安装点。 所以我首先做了一个MD C:\HDDs ,然后是MD C:\HDD\Drive1 , MD C:\HDD\Drive2 …。 将驱动器安装到这些空目录后,可以通过切换到具有CD /DC:\HDDs的DIR并发出DIR命令来查看GUID。 也许我必须发出DIR /ah来显示隐藏的东西,以防万一挂载点是隐藏的目录…

批量程序来检查过程是否存在

我想要一个批处理程序,它将检查进程notepad.exe存在。 如果 notepad.exe存在,它会结束进程, 否则批处理程序将自行closures。 这是我所做的: @echo off tasklist /fi "imagename eq notepad.exe" > nul if errorlevel 1 taskkill /f /im "notepad.exe" exit 但它不起作用。 我的代码有什么问题?

与UNCpath的文件

我正在尝试使用forfiles删除超过7天的文件。 这些文件位于UNCpath中。 以下是我正在使用的脚本。 Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path" 但是我得到一个错误提到UNCpath(\ machine \ share)不被支持。 似乎有可用的解决方法,但不能得到明确的答案谷歌search。

如何将批处理脚本多选选项集成到JAVA GUI中?

编辑27/7/2014 请仔细阅读,因为我的问题是一个复杂的 嗨,我想做一个编码,它涉及到一个JAVA GUI,batch file和命令提示符。 我从本网站获得了部分答案: 批量脚本多选 这是我现在在我的batch file[示例]: echo. echo Selection time! echo. echo 1. My father is Joe echo 2. My mother is Audrey echo 3. My brother is Jerry echo 4. My elder sister is June echo 5. My youngest sister is Awy echo 6. Include All echo. :getOptions set /p "choices=Type […]

Windows CMD批处理脚本中的文件名时间戳

我有一个批处理脚本输出一个文件,我试图确保每次脚本执行,没有现有的文件被覆盖,所以我试图把时间戳上。 目前我有这个: set stamp=%DATE:/=-%_%TIME::=-% 但是如果时间是凌晨1点到9点,它会给出类似于: 13-06-2012_ instead of a full 13-06-2012_12-39-37.28 我怎样才能解决这个问题? 我正在使用Windows 7,并且在命令行窗口中echo %date% %time%的输出是(我的'short date'的时钟格式被设置为显示3个字母的月份): 03-Sep-12 9:06:21.54 编辑:我一直在使用以下时间戳,现在很好,运作良好。 set timestamp=%DATE:/=-%_%TIME::=-% set timestamp=%timestamp: =% 它产生了一个时间戳,如: 18-03-2013_13-37-43.26 ,通过replace/和:在%TIME%和%DATE% ,然后剥离空白。 空白是我原来的问题,真的是这个问题。

命令提示符和cmd有什么区别?

我有Windows 7,Windows 8和Windows 10系统,他们都performance相似。 当我将命令提示符input到开始菜单并按下回车键时,会出现一个标题为“命令提示符”的窗口。 我给了它一个蓝色的背景和一个绿色的文字。 当我在命令行中键入start,cmd或bat文件的名称时,会打开一个标题为cmd的窗口,我给出了一个黑色背景和一个绿色文本。 似乎颜色被储存,但…嗯… 当我在Windows 10的开始菜单中inputcmd时,会出现一个标题为“cmd”的窗口,但是它会从命令提示符窗口中调用蓝色背景和绿色文本,但是从该窗口键入cmd会打开一个新的黑色和绿色。 当我双击一个batch file时,会打开一个标题为不同字体的命令提示符窗口和一个白色文本的黑色背景。 当我键入command它只是打印DOS和版权标题,但start command打开一个窗口标题COMMAND.COM与不同的字体和黑色背景与白色文本。 当inputcmd /? 进入参数列表出现在屏幕上。 其中之一是/ Q。 它说它在新的情况下将回声消失。 当我在命令提示符或cmd中键入cmd /Q时,它将使用相同的标题(而不是使用黑色和绿色配色scheme)replace另一个窗口,并且不会closures回显。 当我inputstart cmd /q ,会发生完全相同的情况,但是“启动cmd.exe / q”实际上会产生错误,指出/ Q不是有效的开关。 这真的只是我在这里面临的问题的一小部分,我甚至不能开始整理它。 如果有些老手知道命令提示符的明显区别和调用它们的方式之间的所有细微差别,我会很感激那个把这些乱七八糟的东西给我分类的人。