Articles of batch file

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% ,然后剥离空白。 空白是我原来的问题,真的是这个问题。

单实例batch file?

:: dostuff.bat @echo off :: insert long-running process call here : End 我可以添加到这个batch file,如果它已经在执行时在另一个进程中运行,它会终止?

使用echo y作为pcp hostkey提示的自动响应

我正在构build一个batch file,以便我可以将固件推送到600多个设备。 如果我在命令提示符处,我可以在一行中运行以下命令来推送固件,并在SSH密钥提示符下回答yes。 echo y | pscp -v -scp -pw password C:\CNA1000\Firmware\CNA1504v1.1.7\CNA1504v1_1_7.run root@192.168.1.1:/tmp/. 回声y | 对SSH密钥提示回答yes。 但是,当我尝试将其添加到batch file中时,我在命令提示符中遇到错误,它不喜欢密码。 具体来说,看起来像这样; Using username "root". root@192.168.1.1's password: Sent password Access denied Access denied 然后它重复自己,直到我击中CTRL + C打破batch file。 有没有更好的方法来做到这一点,使我可以自动化的过程? 谢谢,

如何在Windows 7中查询netstat以查找特定本地地址的PID?

我经常在本地地址[::]:8080上启动服务器。 要终止服务器,我需要从netstat -aon获取PID 。 要终止这个服务器,我做taskkill /F /PID <found pid> 我想创buildWindowsbatch file,可以findPID并将其应用于调用taskkill /F /PID <found pid> 我怎样才能创build这样的batch file? 谢谢!

什么C#相当于“mklink / J”?

我知道如何在.bat脚本的窗口中创build一个符号链接: mklink /J <LinkPath> <OriginalResourcePath> 如何在C#中做同样的事情? 我一直不满意Googlesearch,因为我是C#的初学者,我可能不会使用正确的术语。 任何人都可以指出API使用吗?

当试图批量打印variables时,为什么我会收到“Echo is on”

我试图执行一个简单的batch file脚本: echo %1 set var = %1 echo %var% 当我在XP中运行它时,它给了我期望的输出,但是当我在Vista或Windows 7中运行它时,试图打印(回显)值时出现“Echo is On”。 以下是程序的输出: G:\2012>abc.bat 1 G:\2012>echo 1 1 G:\2012>set var = 1 G:\2012>echo ECHO is on. G:\2012>

如果在Windows批处理/ then / else语句

在一个shell脚本中,我有以下代码: if echo Mr.32 ; then echo Success else echo Failed exit fi 什么是Windowsbatch file的等效语法?

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

我试图制作一个类似于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 […]

从Windows批处理脚本中的文件读取值

我试图从文件中读取一个值,并在后续的命令中使用它。 我有一个名为AppServer.pid的文件,其中包含我的应用程序服务器的进程ID(只是数字,它不是一个属性文件或类似的东西)。 应用程序服务器挂起,所以我想要取这个值,并将其传递给kill命令。 所以我的脚本会是这样的 SET VALUE_FROM_FILE=AppServer.pid # or something taskkill /pid %VALUE_FROM_FILE% /f 有没有一个方便的方法来做到这一点在Windows脚本?

批处理脚本查找挂载设备的驱动器号

我正在尝试编写批处理脚本来查找特定的挂载设备。 我在Windows 7中。 我知道该设备将有文件夹驱动器:\习惯所以我想看看所有possabilitiesfind一个设备与这条path 这是我到目前为止 @echo off setLocal Enabledelayedexpansion for %%d in (cdefghijklmnopqrstuvw xyz) do ( if exist %%d:\custom ( ECHO Device Found : %%d ) ) 这不工作,它认为它存在每个驱动器号..所以我看到“设备find”每个单个驱动器号。 这是为什么? 我是否在谈论这个错误? 如何find根目录上具有“自定义”文件夹的驱动器号? 谢谢, 斯蒂芬妮