Articles of cmd

批处理命令将文件移动到新目录

我想写一个批处理作业,执行时将抓住C:\Test\Log文件夹中的所有文件,并将它们移动到C:\Test的新目录中。 这个新的目录将有一个名为“备份 – ”和CURRENT DATE。 所以一旦完成,日志文件夹应该是空的,现在位于新文件夹中的所有文件。 我知道我将不得不使用MOVE命令,但不知道如何dynamic创build一个新的文件夹,并使用date来命名它。

如何用cmd.exe中的百分号字符replace?

在Windows命令提示符中,我试图用string%20replaceset string=Hello World中的空格。 天真地尝试使用string文字%20像这样: set string=%string: =%20% 导致HelloWorld20% 。 试图使用转义字符^像这样: set string=%string: =^%20% 也导致HelloWorld20% 。 试图通过加倍来逃避% : set string=%string: =%%20% 导致HelloWorld%20% 。 我也尝试使用另一个variables来做这样的replace: set r=%20 set string=%string: =%r%% 这导致HelloWorldr%% 。 我发现这个 ,它处理variables中字符百分比的转义。 我也发现这个 ,它处理百分号字符的转义input。 但似乎都不适用于stringreplace。 我在网上find的Windows cmd.exe的tutorial / docu页面告诉我我有正确的语法,但不包括用百分号replace字符。 读完所有这些之后,我试着: setlocal EnableDelayedExpansion set string=!string: =%20! 这会导致!string: =%20! 。 我没有想法,你能帮忙吗?

在cmdbatch file中使用非ASCII字符

我正在开发一个.bat程序,程序是用芬兰语写的。 问题在于CMD不知道这些“特殊”的字母,比如Ä,Ö,Å。 有没有办法让这些工作? 如果用户也可以使用这些字母,我也喜欢它。 我的部分代码: @echo off /u title JustATestProgram goto test123 :test123 echo Letters : Ää Öö Åå pause exit 当我打开这个文件时,这些字母看起来像这样:

从文本文件中读取一个variables

我正在尝试创build一个密码提示,将用户input与文本文件中的信息进行比较(密码保存在.txt文件中)。 我试图通过命令提示符和本网站提供给我的信息,但我不能得到它的工作,可能是因为我没有足够的经验,因为我是先进的批处理编码新手。 这是我到目前为止,文本文件的名称是Q47.txt,它只是单词“你好”,直到我可以得到这个工作: @echo off :a cls SetLocal EnableDelayedExpansion set content= for /F "delims=" %%i in (Q47.txt) do set content=!content! %%i echo %content% EndLocal echo Enter password to continue: set /p "VAR=>" if "%VAR%" == "%content%" ( goto begin ) echo Incorrect, please try again. pause >nul goto a :begin cls echo Welcome pause >nul […]

复制文件而不重新创build子目录

我有一个目录,有大约100个子文件夹,并在这些子文件夹(最多4层)内接近2000个文件。 这些文件是.txt或.log,每个扩展名都有唯一的文件名。 我需要将文件移动或复制(以更快者为准)到不同文件夹的根目录,而无需像xcopy那样重新创build子文件夹结构。 这是在Windows XP上 提前致谢。 现有: 方向1 \ Folder1中\ 000111.txt 方向1 \文件夹2 \ 000112.txt 方向1 \ Folder3 \ 000113.log 方向1 \ Folder4 \方向2 \ 000114.txt 方向1 \ Folder4 \方向2 \ 000115.txt 方向1 \ Folder4 \方向2 \ 000116.log 方向1 \ Folder5 \ DIR3 \ 000117.log 方向1 \ Folder5 \ DIR3 \ 000118.txt 方向1 \ Folder5 […]

为什么控制台会自动最小化?

我是一个Python新手。 今天,我在控制台中运行Python脚本时发现了一个问题。 当我在cmd中运行脚本时,它会自动最小化。 而且,如果我只打开cmd来执行.py文件,它会同时打开最小化的文件。 最后,没有任何东西写在控制台上。 有谁知道为什么? 如果是导致问题的代码本身,我已经粘贴在下面: # -*- coding: utf-8 -*- from functools import reduce def fn(x,y): return x*10+y def char2num(s): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s] t=reduce(fn,map(char2num,'123456')) print(t) 根据以下命令,.py文件关联当前由Notepad ++处理。 >reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice Hash REG_SZ rHDUu4DAyAc= ProgId REG_SZ Applications\Notepad++.exe

FORFILES date -after-(cmd文件中的date计算)

我想在一个cmd文件中使用FORFILES,在给定的date之后通过“today”来处理所有文件。 我可以使用forfiles /d +07/10/2013 /c "cmd /c echo @fname"东西在7/10/13之后执行,但是我想要的只是从90天开始计算在“今天”之前。 是否有一个date计算的语法,将在一个cmd文件,将让我指定“今天之前x天”饲料到FORFILES? 我更喜欢不使用VBS(并且发现了可以在VBS中工作的代码片段),不过我可以重写Powershell脚本,但理想情况下我想使用cmd。 为了澄清,“-90”会find所有超过90天的文件; “+90”会发现所有文件比今天晚了90天(这基本上是无用的,因为文件很less会在未来的date编写),“+7 / 30/2013”​​会查找所有比7/30更新的文件/ 2013。 我想要最后一段时间,最好能够传递给CMD文件的天数variables,也就是说“在今天之前x天之后”,即“在最近x天”。 所以,而不是如上所示使用硬编码的date,我希望能够在cmd文件中计算该date。

使用Windows批处理脚本在FOR循环中计数

任何人都可以解释吗? 我能够使用Windows命令提示符来循环计数,使用以下方法: SET /A XCOUNT=0 :loop SET /A XCOUNT+=1 echo %XCOUNT% IF "%XCOUNT%" == "4" ( GOTO end ) ELSE ( GOTO loop ) :end 但是这种方法不起作用(它为文件中的每一行输出“1”)。 它的行为像variables超出范围: SET /A COUNT=1 FOR /F "tokens=*" %%A IN (config.properties) DO ( SET /A COUNT+=1 ECHO %COUNT% )

在一个Windowsbatch file中,你可以链接执行一些不是另一个batch file的东西吗?

我知道如果你有两个.bat或.cmd文件,我们称它们为foo和bar ,以下规则适用: 没有call : :: Welcome to foo.bat @bar.bat @echo We never get to this line because bar.bat is "chain-executed". 随着call : :: Welcome to foo.bat @call bar.bat @echo This line is executed after bar.bat returns. 我的问题是:是否有一种方法来执行逆向操作,即确保非batch file可执行文件被链接? :: Welcome to foo.bat @chain bar.exe @echo Even though bar is now an .exe, we never get […]

禁止使用DIR列出的目录名称

我想列出文件夹中的文件,但不是子文件夹。 DIR使您可以列出特定types的文件(隐藏,存档准备等),也只有文件夹,但我看不出如何只列出文件。 我需要以下语句来返回文件进行进一步处理,但文件夹名称正在搞砸! for /f %%a in ('dir /b %csvPath%') do ( )