Articles of cmd

为什么控制台会自动最小化?

我是一个Python新手。 今天,我在控制台中运行Python脚本时发现了一个问题。 当我在cmd中运行脚本时,它会自动最小化。 而且,如果我只打开cmd来执行.py文件,它会同时打开最小化的文件。 最后,没有任何东西写在控制台上。 有谁知道为什么? 如果是导致问题的代码本身,我已经粘贴在下面: # -*- coding: utf-8 -*- from functools import reduce def fn(x,y): return x*10+y def char2num(s): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s] t=reduce(fn,map(char2num,'123456')) print(t) 根据以下命令,.py文件关联当前由Notepad ++处理。 >reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice Hash REG_SZ rHDUu4DAyAc= ProgId REG_SZ Applications\Notepad++.exe

FORFILES date -after-(cmd文件中的date计算)

我想在一个cmd文件中使用FORFILES,在给定的date之后通过“today”来处理所有文件。 我可以使用forfiles /d +07/10/2013 /c "cmd /c echo @fname"东西在7/10/13之后执行,但是我想要的只是从90天开始计算在“今天”之前。 是否有一个date计算的语法,将在一个cmd文件,将让我指定“今天之前x天”饲料到FORFILES? 我更喜欢不使用VBS(并且发现了可以在VBS中工作的代码片段),不过我可以重写Powershell脚本,但理想情况下我想使用cmd。 为了澄清,“-90”会find所有超过90天的文件; “+90”会发现所有文件比今天晚了90天(这基本上是无用的,因为文件很less会在未来的date编写),“+7 / 30/2013”​​会查找所有比7/30更新的文件/ 2013。 我想要最后一段时间,最好能够传递给CMD文件的天数variables,也就是说“在今天之前x天之后”,即“在最近x天”。 所以,而不是如上所示使用硬编码的date,我希望能够在cmd文件中计算该date。

使用Windows批处理脚本在FOR循环中计数

任何人都可以解释吗? 我能够使用Windows命令提示符来循环计数,使用以下方法: SET /A XCOUNT=0 :loop SET /A XCOUNT+=1 echo %XCOUNT% IF "%XCOUNT%" == "4" ( GOTO end ) ELSE ( GOTO loop ) :end 但是这种方法不起作用(它为文件中的每一行输出“1”)。 它的行为像variables超出范围: SET /A COUNT=1 FOR /F "tokens=*" %%A IN (config.properties) DO ( SET /A COUNT+=1 ECHO %COUNT% )

在一个Windowsbatch file中,你可以链接执行一些不是另一个batch file的东西吗?

我知道如果你有两个.bat或.cmd文件,我们称它们为foo和bar ,以下规则适用: 没有call : :: Welcome to foo.bat @bar.bat @echo We never get to this line because bar.bat is "chain-executed". 随着call : :: Welcome to foo.bat @call bar.bat @echo This line is executed after bar.bat returns. 我的问题是:是否有一种方法来执行逆向操作,即确保非batch file可执行文件被链接? :: Welcome to foo.bat @chain bar.exe @echo Even though bar is now an .exe, we never get […]

禁止使用DIR列出的目录名称

我想列出文件夹中的文件,但不是子文件夹。 DIR使您可以列出特定types的文件(隐藏,存档准备等),也只有文件夹,但我看不出如何只列出文件。 我需要以下语句来返回文件进行进一步处理,但文件夹名称正在搞砸! for /f %%a in ('dir /b %csvPath%') do ( )

如何将一个目录树的内容移动到另一个目录树的内容?

我有一个目录,其中包含文件和一些级别的子目录: C:\Source 我想将C:\ Source的内容移动到: C:\Destination 要求: 必须移动C:\ SourceData中的所有文件和所有子目录 我将在batch file中运行该命令 我无法使用Powershell或任何其他脚本语言 尝试0 XCOPY /E "C:\Source" "C:\Destination" 这完美的作品,但它复制而不是移动。 我无法复制,然后删除源文件,因为我正在移动一大堆文件,而且没有足够的磁盘空间来同时拥有它们的两个副本。 尝试1 MOVE "C:\Source" "C:\Destination" 这将整个C:\ Source目录移动到 C:\ Destination,所以我最终得到: C:\Destination\Source 尝试2 在这个问题和接受的答案的一些帮助下,我想出了: for /r "C:\Source" %%x in (*) do move "%%x" "C:\Destination" 这将移动C:\ Source中的文件,但不移动子目录或其内容。 请注意,我使用%% x而不是%x,因为我在batch file中使用它。 使用FOR似乎很有前途,但我不确定我是否使用了正确的语法? 我错过了什么吗? 尝试3 正如Nick D所build议的,我尝试重新命名: 重命名“C:\ Source”目标 对于示例场景,我给这个工作正常。 不幸的是,我真正的目的地目录与Source目录的级别不同,似乎并不支持: C:\>REN /? […]

从Windows中的Java代码运行Maven?

我想基于这个build议从我的java类运行maven: 如何从java运行maven? Runtime.getRuntime().exec("mvn"); 但是我得到: java.io.IOException: Cannot run program "mvn": CreateProcess error=2, The system cannot find the file specified mvn是我的path,我可以从cmd运行它: C:\Users\m>mvn -v Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) Maven home: C:\apache-maven-3.0.3\bin\.. Java version: 1.6.0_20, vendor: Sun Microsystems Inc. Java home: C:\Program Files\Java\jdk1.6.0_20\jre … 有什么build议么?

对文件夹中的所有文件执行命令

我想运行一个目录中的所有文件的命令。 对于(c \ conversion * .ajt)%% 1 转换命令 %% 1 %% 2然而,我需要有一个输出文件名与input相同,但具有不同的文件扩展名。 asciitojt.exe filename1.ajt filename1.jt asciitojt.exe filename2.ajt filename2.jt asciitojt.exe filename3.ajt filename3.jt 是我想要离开系统。 我如何replace最后3个字符? 这是运行在一个batch file。

Windows 7中运行不同用户的单行命令也包含密码

是否有任何单行命令为Windows 7中运行不同的用户。 我正在使用以下命令,但然后它要求input密码 runas /user:USER-NAME "C:\full\path\of\Program.exe" 还有什么办法supply password also在上面supply password also ? 其实我从其他应用程序启动应用程序,所以我不想任何用户交互但在上面的命令它要求用户PASSWORD

为什么不需要`call`从pipe道中涉及的被调用的批处理脚本返回?

假设有一个batch file(调用者)执行另一个batch file(被调用者), call命令需要被使用以在被调用者完成执行之后返callback用者。 这里是一个例子: caller.bat : echo Calling another script… call callee.bat echo Returned from callee… callee.bat (在相同的位置) : echo Being called from caller… 输出将是这个(省略命令回声),显示执行返回按预期: Calling another script… Being called from caller… Returned from callee… 如果call者中的call命令被解除,则输出将是: Calling another script… Being called from caller… 但是只要被调用者涉及到pipe道( | ), call命令是否被使用就没有区别。 例如: caller.bat (被调用者保持不变) : echo Calling another […]