Articles of DOS

Windows如何确定/处理任何给定文件的DOS短名称?

我有这些文件的文件夹: alongfilename1.txt <— created first alongfilename3.txt <— created second 当我在命令提示符下运行DIR / x时,我看到这些简称: ALONGF~1.TXT alongfilename1.txt ALONGF~2.TXT alongfilename3.txt 现在,如果我添加另一个文件: alongfilename1.txt alongfilename2.txt <— created third alongfilename3.txt 我看到这个: ALONGF~1.TXT alongfilename1.txt ALONGF~3.TXT alongfilename2.txt ALONGF~2.TXT alongfilename3.txt 精细。 它似乎是根据我创build文件的date/时间分配“〜#”。 它是否正确? 现在,如果我删除“alongfilename1.txt”,其他两个文件保留其短名称 。 ALONGF~3.TXT alongfilename2.txt ALONGF~2.TXT alongfilename3.txt 什么时候将这个ID(在这种情况下,〜1)释放用于另一个短名称。 它会永远吗? 另外,我的机器上的文件有可能是X的短名称,而同一个文件在另一台机器上的名称是Y? 我特别担心自定义操作使用DOS短名称的安装。 多谢你们。

创build一个batch file来识别活动的Internet连接

我试图写一个batch file,这将允许用户select他们的活动Internet连接,如果从netsh命令生成的列表中有多个,然后更改DNS设置。 然而,我不知道如何使用select命令时,已知的选项数量,直到脚本执行。 没有使用数组,我试图创build一个stringvariables“select”来容纳代表数字select的string,并将其传递给select命令,但我不能让它工作。 我不禁感到必须有一个更简单的方法来做到这一点,但是我的研究却没有向我certificate这一点。 任何帮助将受到感谢。 @echo off setlocal Set active=0 Set choices=1 set ConnnectedNet= FOR /F "tokens=2,3* " %%j in ('netsh interface show interface ^| find "Connected"') do Set /A active+=1 FOR /L %%G IN (2,1,%active%) do (set choices=%choices%%%G) if %active% lss 2 goto :single if %active% gtr 1 goto :multiple :single FOR /F […]

search给定的文件集并复制到另一个目录

在needToFind.txt文件中有一组给定的文件名,例如: myImage1.jpg,theImage.jpg,parisImage.jpg(这是我将格式化它无关紧要的文件名用逗号或换行符分隔) 还有一个名为/ MyImageFolder的文件夹,其中包含1000个图像,还包含myImage1.jpg,theImage.jpg,parisImage.jpg 我想find那些给出的图像,并将其复制到另一个目录。 我想search给定的文件名在needToFind.txt,目录/文件夹MyImages,其中包含许多图像。 并将创build的图像复制到另一个目录/文件夹,例如MyGivenSetOfImages。 请帮助,这将拯救我的生命。 谢谢

如何使用新行正则expression式使用findstr

我在Windows DOS提示符。 我有日志文件,其中包含日志如下: Timestamp: Order received for Item No. 26551 Timestamp: Exception: OutOfRangeException Timestamp: Message: Inventory Item is not stock. Item No. 23423 Timestamp: Order received for Item No. 23341 我想提取所有产生某种例外的项目号码。 我正在使用findstr命令。 我怎样才能在我的正则expression式中使用换行符? 我想所有的行有exception字,从下一行的项目号。 任何帮助?

在命令行处理分号

我有两个batch file用于运行大型的c + +版本,第一个启动进程,创build目录并确定要发送到第二个脚本的内容。 如果某些信息显示给第一个脚本,我会有一个例程popup一个窗口并要求input密码。 通过调用第二个脚本来传递给第二个脚本 call script2.bat -pw:myPassword myPassword是用户input的内容。 现在,我一直在testing这个脚本,我的一个用户密码包含一个分号,所以我们得到了这个 call script2.bat -pw:my;Password 我发现通过join引号,我可以得到这个到第二个脚本确定调用script2.bat -pw:“我的密码” 但是,当我尝试这样做时,命令行parsing会中断 for /F "tokens=1,2 delims=:" %%a in ( "%1" ) DO SET switch=%%a&value=%%b 如果我回显%1,则显示如下 -pw:"my;Password" 但是,当脚本运行的时候,我会看到回声 for /F "tokens=1,2 delims=:" %%a in ( "-pw:"my Password"" ) DO SET switch=%%a&value=%%b 它parsing为开关= -pw和值=“我的 我最终需要的是有价值的包含我的密码,所以我可以把它传递给另一个程序 任何想法如何得到这个parsing正确 这里重新发布2个batch file:a.bat:echo on 打电话给b.bat -pw:eatme叫b.bat -pw:吃;我叫b.bat […]

如何在vbs中传递包含空格的参数?

我有一个批处理脚本: test.bat的 echo first arg is %1 pause 我想从一个带有pipe理权限的vbscript调用,如下所示: test.vbs Set UAC = CreateObject("Shell.Application") UAC.ShellExecute "test.bat", "argument", "", "runas", 1 这工作正常,但我无法传递包含空格作为单个参数的path参数。 基本上,我需要将参数放在空格中,但无论我尝试什么,都不起作用。 它看起来像调用批处理,但cmd窗口只是闪烁起来,消失,所以我不知道什么是错的。 我试过了: UAC.ShellExecute "test.bat", """has spaces""", "", "runas", 1 和 UAC.ShellExecute "test.bat", Chr(34) & "has spaces" & Chr(34), "", "runas", 1 和 UAC.ShellExecute "test.bat", '"has spaces"', , "runas", 1 和 UAC.ShellExecute "cmd", "/c […]

批文件日/月/年语法?

我无法find提取当前日/月/年的batch file语法的简单细目。 我有以下语法来声明一个variables用作目录名称; set folder=%date:~10,4%%date:~7,2%%date:~4,2% 任何人都可以在徘徊,双重百分比意味着什么?(或张贴链接)? 我似乎无法完全破译直觉。

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 […]