Articles of 命令行

使用文件夹名称和序列号批量重命名文件 – 发送到菜单

我有一个名为销售的文件夹。 我在该文件夹中有imgxy.jpg,imgab.jpg等。 当我右键单击销售文件夹,并发送到rename.bat文件(我已经将rename.bat文件复制到c:\文件和设置\用户名\发送到 )我想销售文件夹中的文件更改为sales1。 jpg,sales2.jpg等这个行为应该是我发送给这个.bat文件的东西。 以下代码昨晚在Windows 7上正常工作。 现在我是Windows XP的SP3,它的工作。 它试图重命名文件夹中的文件* c:\文件和设置\用户名* 请帮助下面的rename.bat文件代码 @ECHO OFF setlocal enabledelayedexpansion set foldername=%1 for %%i in (%bar%) do set bar=%%~ni FOR /D %%# in (%bar%) DO ( PUSHD "%%#" FOR %%@ in ("*") DO ( set /a "inc+=1" Echo Ren: ".\%%~n#\%%@" "%%~n#!inc!%%~x@" Ren "%%@" "%%~n#!inc!%%~x@" ) POPD )

C#取消Windows关机

我想我的应用程序可以防止从Windowsclosures。 我知道有一个系统命令来做到这一点。 但不适合我的程序。 我使用这个代码“取消”窗户closures: private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason.Equals(CloseReason.WindowsShutDown)) { MessageBox.Show("Cancelling Windows shutdown"); string cmd = "shutdown /a"; Process.Start(cmd);// for executing system command. } } 也使用此代码,但不起作用:(: public Form1() { InitializeComponent(); SystemEvents.SessionEnding += SessionEndingEvtHandler; } private void SessionEndingEvtHandler(object sender, SessionEndingEventArgs e) { MessageBox.Show("Cancelling Windows shutdown"); string cmd = "shutdown /a"; Process.Start(cmd);// for […]

%variables%和!variables之间的区别! 在batch file中

我正在写一个batch file,我需要输出一个string包含'!' 到另一个文件。 但是,当我将该string回显给另一个文件时,它将删除“!” 从输出。 例如:input: set LINE=Hi this is! output echo !LINE!>>new_file.txt new_file.txt中的输出是: Hi this is output 另外,如果input是 set LINE=Hello!! this is output!! echo !LINE!>>new_file.txt 在new_file.txt中输出: Hello 因此,它跳过! (感叹号)从输出到new_file。 如果使用%LINE%,则只显示输出文件的“echo is on”。 请build议一种方法来解决这个问题。

奇怪的Windows DIR命令行为

当我在名字中查找一个带有数字的文件时,我意外地发现了这个问题。 当我input: dir * 号码 * (其中数字表示0到9之间的任何数字,星号和数字之间没有空格) 在cmd.exe命令提示符处,它返回的各种文件不会出现在任何符合search条件的文件中。 有什么奇怪的是,根据目录,一些数字将工作,而不是其他人。 例如,在与网站相关的目录中,input以下内容: dir *4* 而返回的是: C:\ Ampps \ www \ includes \ pages目录 04/30/2012 03:55 PM 153 inventory_list_retrieve.php 06/18/2012 11:17 AM 6,756 ix.html 06/19/2012 01:47 PM 257,501 jquery.1.7.1.js 3个文件264,410字节 0 Dir(s)362,280,906,752字节免费 这对我来说没有任何意义。 任何线索? 问题是摆在堆栈溢出,因为在批处理程序中DIR命令经常与FOR组合。 奇怪的DIR行为似乎使批处理程序可能不可靠,如果他们使用DIR命令。 编辑:(附加说明)。 虽然已经过了很多时间,但是我发现了另外一个怪癖,几乎要花费我很多的工作。 我想删除特定目录树中的所有.htm文件。 我在做之前意识到*.htm与.html文件匹配。 另外, *.man与.manifest匹配,可能还有其他的。 删除该特定目录中的所有.html文件,至less可以说是令人不安的。

如何仅为当前操作系统会话设置variables

setx永久修改环境variables。 set仅在批处理脚本持续时间内使variables可用。 有没有办法设置一个variables,以保持其值,直到系统重新启动? 例如在我的batch file中,我正在检查variables是否如下设置: if %MYVAR% == 1 ( <block> )

使用Windows / DOS的shell /批处理命令,我如何拿一个文件,只保留唯一的行?

说我有一个像这样的文件: apple pear lemon lemon pear orange lemon 我怎么做才能保持独特的线条,所以我得到: apple pear lemon orange 我可以修改原始文件或创build一个新的。 我想有一种方法可以一次扫描原始文件一行,检查该行是否存在于新文件中,然后追加(如果没有)。 我没有在这里处理真正的大文件。

嵌套forfiles:path和扩展名filter

是否有可能嵌套两个forfile命令,以便我可以通过path名和扩展 名进行过滤,然后只对这些双重过滤的文件运行命令? 举例来说,我想要获得所有用户的所有Outlook HTML签名。 我可以做到这一点 forfiles /s /pc:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm" 但是这只会显示文件名,因为这是forfiles默认的调用cmd /c echo @file 。 改变这是行不通的,因为那么我需要在内部的forfiles命令中设置/c -option,它需要设置引号引起双引号: forfiles /s /pc:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm /c "cmd /c echo @path"" 我怎样才能转义内部的引号或使用一些不同的方法来运行所有文件的path和文件扩展名的子string过滤的所有文件? 亲切的问候 sc911 忘记/srecursionsearch[/编辑]

从命令行sorting不同长度的hex数字?

如果我有一个不同长度的hex数字文件,例如 1F b c 我怎样才能从命令行sorting他们? Linux的解决scheme是受欢迎的,但我会使用Windows和Cygwin或gnuwin32。 注意:我显然不能使用SORT'cos,这将使它们保持错误的顺序。

蝙蝠文件移动文件

我想创build一个bat文件,将文件从一个位置移动到一个备份文件夹。 条件是我需要移动父目录内的所有超过30天的文件夹。 文件夹的名称是文件夹的创builddate。 例如:2012年10月17日的所有文件将存在于名为10172012的文件夹中。源文件夹是: C:\Data\DataIn\Processed\10172012 C:\Data\DataIn\Processed\09172012 C:\Data\DataIn\Processed\08172012 所以今天的bat文件应该将文件夹“09172012”,“08172012”移到目标备份文件夹: D:\Backup\Processed\

如何从命令行添加/更新MSI中的属性?

我有一个MSI安装程序,我需要从命令行添加或修改一个简短的文本属性。 这必须在安装程序build立之后完成; 我无法修改产生安装程序的进程。 它也必须从脚本无头执行。 当我说“属性”时,它可能是一个MSI属性,一个在安装时写入registry的值,或者任何其他机制,在运行时可以将这个简短的自定义文本放到已安装的应用程序中。