Articles of cmd

运行Python代码时,Cmd和Git bash有不同的结果

平台:Git bash MINGW64,Windows 7,64 CMD当我从Learn Python The Hard Way ex11运行Python代码时。 代码很简单。 print "How old are you?", age = raw_input() print "How tall are you?", height = raw_input() print "How much do you weigh?", weight = raw_input() print "So, you're %r old, %r tall and %r heavy." % ( age, height, weight) 但是他们在CMD和Git bash中有不同的结果。 当我使用Git bash运行它时,raw_print()将首先运行。 […]

批处理脚本:突出显示的select的导航菜单

我痴迷于纯粹的命令行模仿8位时代程序的function的想法。 所以我想做一个菜单选项,可以select标称(因为没有箭头键的箭头键)左右键和确认回车数组。 为了保持清楚,我写了一个工作的例子。 请注意ANSI转义码我使用了很多,不确定ESC控制字符是否会在浏览器中显示。 @ECHO OFF ECHO Chose and option with [36mZ[0m for left, [36mX[0m for right, [36mC[0m for confirm :PICKMENU SETLOCAL SET menumsg="[7mExit [0m Next" SET menumsgDef="[7mExit [0m Next" SET menumsgNxt="[0mExit [7m Next" :subpick CHOICE /N /C zxc /m:[3;1H%menumsg% IF %errorlevel% EQU 0 ECHO Just in case of errors & GOTO PICKMENU IF %errorlevel% […]

Python – subprocess.call使用cygwin而不是Windows上的cmd

我在Windows 7上进行编程,在我需要调用bedtools的 python项目之一中,只能在Windows上使用cygwin。 我是cygwin的新手,安装了默认版本+ bedtools所需的所有东西,然后使用cygwin按照安装说明中的说明使用make安装bedtools。 $ tar -zxvf BEDTools.tar.gz $ cd BEDTools-<version> $ make 当我使用cygwinterminal像下面那样手动调用它时,它工作正常,输出文件包含正确的结果。 bedtools_exe_path intersect -a gene_bed_file -b snp_bed_file -wa -wb > output_file 但是,当我在我的程序中使用subprocess.call似乎使用Windows CMD,而不是cygwin,这是行不通的。 arguments = [bedtools_exe_path, 'intersect', '-a', gene_bed_file, '-b', snp_bed_file, '-wa', '-wb', '>', output_file] return_code = suprocess.call(arguments) 结果在没有输出文件和返回码3221225781。 arguments = [bedtools_exe_path, 'intersect', '-a', gene_bed_file, '-b', snp_bed_file, '-wa', '-wb', '>', output_file] […]

将命令添加到cmd历史logging

我试图在Windows CMDterminal内运行控制台程序。 有用。 但我运行的程序没有添加到历史。 String[] command = {"cmd.exe", "/C", "\"start cmd.exe /K \"" + commandLine + "\"\""}; ProcessBuilder builder = new ProcessBuilder().command(command); start = builder.start(); 我想增加用户的能力,最近很容易重新运行这个程序。 有没有办法将命令添加到cmd.exe历史logging?

Windows PowerShell中的PerlIO和CMD.exe

显然,我有一个Perl脚本的结果在两个不同的输出文件,这取决于我是否在Windows PowerShell或cmd.exe下运行它。 脚本可以在这个问题的底部find。 文件句柄用IO::File打开,我相信PerlIO正在做一些棘手的事情。 看起来好像在cmd.exe下select的编码是更紧凑的编码(4.09 KB),相比PowerShell生成的文件几乎两倍的大小(8.19 KB)。 该脚本需要一个shell脚本并生成一个Windowsbatch file。 看起来像在cmd.exe下生成的只是常规的ASCII(1字节字符),而另一个似乎是UTF-16(前两个字节FF FE ) 有人可以validation并解释为什么PerlIO在Windows Powershell下的工作方式与cmd.exe不同? 另外,如何使用IO::File显式获取ASCII-magic PerlIO文件句柄? 目前,只有使用cmd.exe生成的文件是可执行的。 UTF-16 .bat (我认为是编码)不能由PowerShell或cmd.exe执行。 顺便说一句,我们使用Perl 5.12.1 MSWin32 #!/usr/bin/env perl use strict; use warnings; use File::Spec; use IO::File; use IO::Dir; use feature ':5.10'; my $bash_ftp_script = File::Spec->catfile( 'bin', 'dm-ftp-push' ); my $fh = IO::File->new( $bash_ftp_script, 'r' ) or die $!; […]

如何使用Windows批处理编程来重命名与该文件夹内第一个文件的文件名相同的文件夹?

我有一组约3000个名为XYZ-1到XYZ-3000的文件夹。 这些文件夹内部是一组图像文件和一个描述文本文件。 如: Property123_0001.jpg Property123_0002.jpg Property123_0003.jpg … Property123_0085.jpg Property123_0086.jpg Z_Description.txt .jpg文件的数量在每个文件夹中都不相同,但总是有一个描述文件。 每个目录的图像文件都有不同的名称,例如`XYZ-1可能包含Property123,而XYZ-10可能包含Easement789。 我需要在.jpg文件的“Property123”部分之后重命名包含文件的文件夹。 理想情况下,我会截断尾数字和下划线,但即使留下,也会比XYZ-1更好。 我正在处理一个batch file,但是我的文件不能运行,我不知道为什么。 这是我有: for /d %%D in (*) do ( set "_dir=%%D" set /a "_first=1" cd "%%D" for %%F in (*) do ( if %_first%==1 set "_name=%%~nF" set /a "_first=0" ) cd .. ren %_dir% %_name% ) 不幸的是,当我运行它时,命令窗口立即closures。 我试着在最后放一个暂停命令,但是没有打开窗口。 文件/文件夹没有任何反应。 我试过从命令行我的语法,一切都看起来不错。 […]

如何在退出之前等待所有batch file完成?

我有一个主batch file,而不是调用4个其他batch file,所以我们可以并行运行。 例: Main.bat start call batch1.bat start call batch2.bat start call batch3.bat start call batch4.bat exit 在所有批1到批4停止执行之后,我想让Main.bat退出。 这样我就可以得到batch file的总运行时间。 问题是Main.bat甚至在batch1到batch4完成执行之前退出。 我试图为每个batch file计算%errorlevel%,但即使4个.bat文件仍在运行,它总是返回0。 希望有人能帮助我! 谢谢! 🙂

批量文件inputvalidation – 确保用户input一个整数

我正在试验一个Windowsbatch file来执行一个简单的操作,要求用户input一个非负整数。 我正在使用简单的batch file技术来获取用户input: @ECHO OFF SET /P UserInput=Please Enter a Number: 用户可以在这里input他们想要的任何文本,所以我想添加一些例程来确保用户input的是一个有效的数字。 那是…他们至lessinput了一个字符,每个字符都是从0到9的数字。我想要一些可以将UserInputinput的字符。 例程的结尾就像一个if / then那样会根据它是否是一个有效的数字来运行不同的语句。 我已经尝试过循环和子string等,但我的知识和理解仍然是苗条的…所以任何帮助将不胜感激。 我可以构build一个可执行文件,我知道有比batch file更好的方法,但至less对于这个任务,我试图通过使用batch file保持简单。

如何检测CMD是否以pipe理员身份运行/具有较高的权限?

从batch file中,我想testing我是否以pipe理员/提升特权运行。 当“以pipe理员身份运行”被选中时,用户名不会改变,所以这是行不通的。 如果有一个普遍可用的命令,它没有任何作用,但需要pipe理权限,那么我可以运行它,并检查错误代码,以testing特权。 到目前为止,我还没有find这样的命令。 我发现的命令似乎会返回一个非特定的错误代码,这可能表示任何事情,而且由于各种原因,这些错误代码很容易出错。 我只关心Windows 7,尽pipe支持早期的操作系统会很好。

什么事情发生deltree,并且它的replace是什么?

在MS-DOS的早期版本中 – 我想说的是版本7,但我可能是错的 – 有一个deltree命令,recursion删除给定的path中的所有子目录和文件。 deltree不再存在,但del似乎并没有inheritance删除树的能力。 del /s删除文件,但不是文件夹。 如何轻松地(即在一个命令)从batch file中删除一棵树?