Articles of DOS

batch filevariables在for循环中初始化

我有一个batch file,它通过在for循环中的SET初始化variables,用于磁盘上的一组文件: for %%f in (%MYTARGETDIR%\*config.xml) do ( SET TMPFILE=%%F.tmp echo In loop %TMPFILE% ) echo End loop %TMPFILE% 当我在一个全新的命令行(没有定义TMPFILE)中运行这个时,In循环回显为空,但是结束循环回显不是。 当我第二次运行,它已经设置,并输出它的值,忽略集合,直到循环closures。 想法为什么这是,以及解决方法是什么?

如何批量传递多个参数?

在我的batch file中,我想将多个parameter passing给其他应用程序。 现在我做到了 app.exe %1 %2 它只能传递两个参数,但我想传递所有传递给批处理的参数(我宁愿不写%1%2%3%4 … ) 有没有什么神奇的方法来做到这一点?

用于DOS / Windows和Cygwin的Makefile

我需要在DOS(Windows)和Cygwin下有makefile 。 我遇到了正确的检测操作系统和设置适当的variables的生成文件的问题。 目标是为以下命令设置variables,然后使用variables调用规则中的命令: 删除文件:在Cygwin中的rm ,在DOS中del 。 删除目录: rmdir (Cygwin和DOS中的不同参数) 复制文件:在Cygwin中的cp ,在DOS下copy 。 testing文件存在:在Cygwin中进行test ,在DOS中执行IF EXIST 。 列出一个文件的内容:在Cygwin中type DOS。 这是我的尝试,总是使用else子句: OS_KIND = $(OSTYPE) #OSTYPE is an environment variable set by Cygwin. ifeq ($(OS_KIND), cygwin) ENV_OS = Cygwin RM = rm -f RMDIR = rmdir -r CP = cp REN = mv IF_EXIST = test -a […]

我怎样才能debugging.BAT脚本?

有没有办法通过.bat脚本? 事情是,我有一个构build脚本,它调用了很多其他脚本,我想看看它们被调用的顺序是什么,以便我可以知道我到底要去哪里并添加我的修改。

如何在远程PC上执行dos命令?

当我知道它的login名和密码时,是否可以在远程PC上执行dos shell命令? 是否有可能使用客户端PC的DOSshell?

如何使用VC ++检查C:\驱动器中是否存在文件?

我想检查一个文件是否存在于C盘或不? 谁能告诉我怎么样? 更新: 我有错误,我正在使用VC ++ 2008 #include "stdafx.h" #include <stdio.h> int main(int argc, _TCHAR argv[]) { FILE * f = fopen("C:\\Program Files (x86)\\flower.jpeg"); if (f == NULL) { file_exists = FALSE: } else { file_exists = TRUE; fclose(f); } return 0; } 更新2 当试图从下面的链接示例中剪切和粘贴代码时: #include "stdafx.h" #include <windows.h> #include "Shlwapi.h" int tmain(int argc, _TCHAR argv[]) […]

你知道一个类似的Windows程序(unix word count命令)吗?

快速search给了我tawbaware wc ,但它不接受作为inputstream的标准输出,这意味着我不能在DOS会话中使用pipe道。 注意:我不能安装cygwin或使用powershell(这将允许一个'| foreach-object {(get-content $ _)。count}') unxutils和和gnuwin32包可能有这个function…

当试图批量打印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>

使用wget调用URL并根据URL的内容返回ERRORLEVEL

客户端具有基于Windows的内部服务器,在其上编辑CMS的内容。 数据在夜间与现场networking服务器同步。 这是缓慢的Internet连接的解决方法。 有两件事情要同步:新文件(已sorting)和一个MySQL数据库。 为此,我正在编写一个脚本,使用mysqldump将数据库导出到转储文件中,并上载转储。 上传过程使用名为ScriptFTP的第三方工具(一种FTP自动化工具)完成。 然后我需要在目标服务器上运行一个基于PHP的导入脚本。 根据此脚本的返回值,ScriptFTP操作继续,并且一些目录被重命名。 我需要一个外部工具,因为scriptFTP只支持FTP调用。 我在想wget的Windows版本。 在scriptFTP中,我可以执行任何批处理或exe文件,但是我只能parsing调用导致的错误级别而不是stdout输出。 这意味着我需要返回错误errorlevel 1如果PHP导入操作出错,错误errorlevel 0如果它顺利。 另外,显然,如果根本无法连接到导入脚本,我需要返回一个肯定的错误级别。 我可以完全控制导入PHP脚本,并可以决定错误:输出错误消息,返回一个头,不pipe。 你将如何去运行wget(或任何其他工具来启动服务器端导入),并返回一个错误级别取决于PHP脚本返回什么? 我现在最好的方法是构build一个执行wget命令的batch file,将结果存储在一个文件中,batch file根据文件的内容返回错误级别0或1。 但我真的不知道如何使用批量编程来匹配文件的内容。

通过Ruby持久化一个环境variables

我想在Ruby中设置我的DOS环境variables,并在脚本退出后保持它。 例如,如果我想要一个ruby脚本set_abc_env.rb将环境variables“ABC”设置为“blah”,我期望运行以下命令: C:> echo %ABC% C:> set_abc_env.rb C:> echo %ABC% blah 我该怎么做呢?