Articles of cmd

Windowsbatch file使用date/时间将输出redirect到日志文件

我想运行一个batch file运行一个可执行文件,并将其输出redirect到一个日志文件。 日志文件必须包含date和时间作为文件名。 这是我正在使用的命令: "%PROGRAMFILES%\PostgreSQL\9.4\bin\vacuumdb.exe" –username postgres –verbose –analyze –all > E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log 2>&1 这个命令直接在cmd中粘贴。 日志文件按预期创build为“2015_06_25__11_20_46.log”。 但是,它在粘贴到batch file时不起作用,然后在cmd中运行。 命令解释如下: "C:\Program Files\PostgreSQL\9.4\bin\vacuumdb.exe" –username postgres –verbose –analyze –all 8_21_42.log 1>E:\Logs\VacuumDB\2015_06_26_ 2>&1 请注意,文件名是如何截断的,时间现在被附加到命令参数中,而不是在文件名中。 所以显然这个命令失败了。 这当然是非常简单的,但我还没有find任何解决方法。 任何帮助是极大的赞赏。 谢谢!

Windows 命令显示超时的消息框?

注意:这是一个问题答案 ,以便logging其他人可能会觉得有用的技术,以便或许能够意识到别人的更好的解决scheme。 随意添加评论或问题作为评论。 也请随时添加额外的答案。 🙂 如何通过键入单个Windows命令来显示消息框 ,例如在“开始”菜单的“运行”对话框中或[cmd.exe]命令解释程序中?

bat文件脚本来检查string是否包含其他string

我需要写一个batch file来检查variables是否包含特定的值。 我试图做到以下几点: If "%%a"=="%%a:%pattern%" ( echo Yes ) else ( echo No ) input示例:%% a =“bob binson”%patern%=“binson” 我从来没有得到印! 任何人都可以请告诉我错过了什么,或者给出一个他将如何做的例子? 提前致谢

如何在远程机器上启动.cmd文件?

我需要能够从该文件驻留在该计算机上的目录内启动位于远程计算机上的.cmd文件。 我已经尝试过: invoke-command -ComputerName test123 -ScriptBlock { cmd /cc:/myfile.cmd }在invoke-command -ComputerName test123 -ScriptBlock { cmd /cc:/myfile.cmd }中,启动.cmd,但然后失败,因为它找不到相应的.cmds,这一个启动这些都位于同一个目录中)。 有没有办法启动这个.cmd文件,并保持执行? 即,即使PowerShell窗口closures后,.cmd将继续在远程机器上运行。

将批量stderrredirect到文件

我有一个执行Java应用程序的batch file。 我试图修改它,以便每当发生exception时,它会将STDERR写入文件。 它看起来像这样: start java something.jar method %1 %2 2>> log.txt 有没有一种方法可以将参数%1和%2写入log.txt文件? 我不想每次调用这个batch file的时候都把它写到日志文件中,只有在发生exception的时候。 我试图寻找一种方法将STDERRredirect到一个variables,但我无法弄清楚。 理想情况下,我希望日志文件看起来像这样: Batch file called with parameters: – "first arg" – "second arg" Exception: java.io.exception etc… ———————————— Batch file called with parameters: – "first arg" – "second arg" Exception: java.io.exception etc…

用batch file增加前导零的数字

用前面的零来增加数字的麻烦。 它在0008告诉我filename already exist or file not found失败。 很奇怪。 这是脚本: @echo off copy nul %tmp%\filename.tmp for /f "tokens=2 delims=-." %%a in ( 'dir /b "%tmp%\filename*.tmp" ^|sort /r ^|findstr /r [0-9]' ) do ( set "num=%%a" goto :done ) ren %tmp%\filename.tmp filename-0001.tmp exit /b 0 :done echo the highest number found is %num% set /a num+=1 […]

批文件文件夹检测

是的,我知道在batch file中使用时,需要将%a加倍为%% a。 ;) 这有效,但不给我我想要的结果 – 这太多了.. FOR /f %a IN ('dir "D:\tomcat*" /ad /b ') DO FOR /f %b IN ('dir "D:\%a\webapps" /ad /b ') DO ECHO D:\%a\webapps\%b 我真正想做的是: FOR /f %a IN ('dir "D:\tomcat*\webapps" /ad /b ') DO ECHO %a 但是,我得到了由此产生的错误: 文件名,目录名称或卷标语法不正确。 我想这样做,因为我需要检测哪些文件夹中有tomcat,可能是以下任何一种: D:\tomcat D:\tomcat1 D:\tomcat2 D:\tomcat_1 etc. 谢谢!

从cmd运行R.

我不能在cmd中运行R. 我正在使用我公司的电脑,thinkpad,Windows 7.我的问​​题是类似于这个职位: 在Windows中从cmd运行R. 但是,这并没有解决。 我已经尝试将r.exe拖放到cmd窗口中,与运行“C:\ Program Files \ R \ R-3.3.1 \ bin \ R.exe”一样,用引号括起来。 我也尝试将目录放入Windows环境path,但它仍然无法正常工作。 我得到的是“C:\程序未被识别为内部或外部…….” 我已经做了同样的事情,python,它的工作。 我在另一台电脑上做了同样的事情,除了r版本和windows版本不同外,它工作得很好。 请大家,任何人有相同的问题,或知道如何解决它? 非常感谢!!!!

windows cmd:用带引号的参数的带引号的命令for / f的问题

for /f "delims=" %%a in ('"%systemRoot%\system32\find.exe" /?') do @echo %%a 是的,上一行工作。 没有太多有用的,但工程。 但是尝试写一个batch file来回答另一个问题,我面对类似的东西 for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" ^< "c:\something.txt"') do @echo %%a for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" "c:\something.txt"') do @echo %%a 前面的两行都返回The filename, directory name, or volume label syntax is incorrect for /f %%a in ('"%systemRoot%\system32\find.exe" /c […]

使用DOS Batch脚本获取特定文件的父目录名称

我需要在DOS中find文件父目录的名称 例如。 假设这是目录 C:\test\pack\a.txt 我有一个脚本,问我的文件名 C:\\>getname.bat enter file name: c:\test\pack\a.txt 现在脚本应该只返回文件的父名称。 pack 而不是整个文件的父path。 c:\test\pack