Articles of cmd

在批处理脚本中实现“哪个”命令

我试图制作一个类似于which脚本的脚本。 所以我想检查这个命令是内部的还是外部的,或者两者兼而有之。 我试图执行程序,但是当程序(例如.exe)不正确我的程序退出时出现错误,所以我试图打电话给这个程序的help 。 但是现在,如果我尝试检查示例echo并在我当前的目录中有echo.exe我得到它是外部命令,但不是内部。 所以我的问题是如何做到这一点。 如何检查这个程序是内部的还是外部的。 谢谢。 这是我的代码: @echo off setlocal enabledelayedexpansion if "%1"=="" goto help :start if not "%1"=="" ( shift if "%1"=="/?" goto help goto :start ) set arg=%* for %%a in ("%pathext:;=" "%") do ( echo %arg%|findstr /E /I %%a >nul rem If file was given with extension if not ERRORLEVEL […]

从java代码获取cmd命令的输出

我有一个程序,我能够从我的代码成功执行cmd命令,但我希望能够从cmd命令获得输出。 我怎样才能做到这一点? 到目前为止,我的代码是: Second.java: public class Second { public static void main(String[] args) { System.out.println("Hello world from Second.java"); } } 和Main.java public class Main { public static void main(String[] args) { String filename = args[1].substring(0, args[1].length() – 5); String cmd1 = "javac " + args[1]; String cmd2 = "java " + filename; Runtime r = […]

如何捕获未发送到标准输出的命令行文本?

我正在项目中使用LAME命令行mp3编码器。 我希望能够看到某人正在使用的版本。 如果我只是执行LAME.exe没有参数,我得到,例如: C:\LAME>LAME.exe LAME 32-bits version 3.98.2 (http://www.mp3dev.org/) usage: blah blah blah blah C:\LAME> 如果我尝试redirect输出到一个文本文件使用>到一个文本文件的文本文件是空的。 在c#中使用System.Process运行它时,可以从哪里获得此文本?

如何从cmd.exe为PowerShell脚本指定input和输出path?

我是一个使用PowerShell的新手,并且在命令行中使用了newb。 我有一个PowerShell脚本,我希望别人通过cmd.exe运行。 它看起来像这样: Get-Content $i | (Do stuff with strings) | Out-file $o “i”和“o”是用于input和输出的stringvariables,我想由用户select。 我做了一个batch file,它的所有工作都按预期运行,从cmd运行。 我的问题是,我希望用户能够从命令行指定他们的input和输出path,而无需打开PowerShell。 我怎样才能做到这一点?

我如何从PATH环境variables中提取完整path?

我想从本地cmd工具中提取PATH环境variables的完整path。 考虑以下PATH内容: C:\ Program Files \ Windows Resource Kits \ Tools \; C:\ Perl \ site \ bin; C:\ Perl \ bin; C:\ WI NDOWS \ system32; C:\ WINDOWS; C:\ WINDOWS \ System32 \ Wbem ; c:\ Program Files \ Microsoft SQ L Server \ 90 \ Tools \ binn \; C:\ WINDOWS \ system32 […]

cmd – 是否有可能临时分配一个可用的驱动器号到本地path?

在Windows上使用cmd,使用pushd可以很容易地将驱动器号分配给UNCpath: C:\Windows\> pushd \\server\share\path Y:\> popd C:\Windows\> 不过,我希望能够做到与本地path相同,因为它会缩短文件path,我不得不使用不支持具有很长path的文件的命令。 这个想法在脚本中没有G:硬编码,因为它可以在另一台机器上使用。 subst G: . pushd G:\ (other commands) popd subst G: /d 我试过pushd \\?\%CD%但不幸的是它不工作… 有没有人有这个魔术? 谢谢

如何使用启动命令通过批处理脚本更改命令窗口的颜色

我正在运行一些小批量脚本来使用robocopy将数据从一个位置复制到另一个位置 下面贴了一个样本。 我需要做的每个这些batch file是让它打开并运行列出(它正在做)的robocopy命令,但我需要robocopy输出窗口在每个batch file设置的颜色。 batch file读取如下启动robocopy.exe“source”“destination”/ MIR /Log:e:\outputlog.txt / TEE 启动robocopy.exe“source”“destination”/ MIR /Log:e:\outputlog.txt / TEE 启动robocopy.exe“source”“destination”/ MIR /Log:e:\outputlog.txt / TEE 以上都将立即运行,这是好的,但我不能让robocopy窗口改变颜色。 (上面的3是一个颜色很好,我们将运行另一个batch file如上,但用不同的颜色来区分副本) 这甚至是可能的。 我知道CMD命令可以有一个颜色的变化,但只适用于该窗口。 随着robocopy命令打开一个新窗口,颜色设置不会传递, 任何帮助或想法,将不胜感激。 我们需要保持代码简单,因为不同的用户需要使用它

Windows批处理脚本中的文件/文件夹select器对话框

通常,要求用户向批处理脚本提供文件名是一件杂乱的事情,不需要拼写错误,空格的path引号等等。 不幸的是,用户的准确性不是很出名。 在input文件位置直到运行时才知道的情况下,使用GUI进行文件selectinput可降低用户错误的可能性。 有没有办法调用File… Open从Windows批处理脚本File… Open样式gui文件select器或文件夹select器? 如果脚本用户安装了PowerShell或.NET,则可以。 请参阅下面的答案。 我也有兴趣看看其他人可以提供什么解决scheme。

Command Prompt中的QuickEdit模式如何以及为什么会冻结应用程序?

最近我遇到了一个Windows上的命令提示问题,QuickEdit模式已经启用,点击窗口select文本并挂起正在运行的程序。 这显然是已知的行为 – 我发现了一些与之相关的问题: 命令行Windows挂在RDP Windows中 Windows控制台应用程序被卡住了 如何禁用单个脚本的QuickEdit模式 应用程序如何“暂停”/“暂停”? 过程与* nix上的SIGSTOP信号相似吗? (我也有兴趣理解为什么这个function首先存在?这似乎是不直观和危险的。)

拆分path并在批处理脚本中取最后的文件夹名称

我想用\分割string(有一个path),并把最后一个文件夹名称放在一个variables中。 请帮忙。 例如 mypath中= d:\ FOLDER1 \ FOLDER2 \ FOLDER3 \ 我想在一个variables的FOLDER3。 我试着用下面的命令工作,如果最后一个字符不是\ : for %f in (C:\FOLDER1\FOLDER2\FOLDER3) do set myfolder=%~nxf 如果最后一个字符是\ 另外它不工作,如果使用variables如: for%f(%mypath%)do set myfolder =%〜nxf