更新:现在是2016年我将使用PowerShell,除非它有一个非常引人注目的向后兼容原因,特别是因为使用区域设置问题date.请参阅@ npocmaka的/sf/answers/1385946551/
什么是Windows命令行语句我可以使用以我可以放入文件名的格式获取当前日期时间?
我希望有一个.bat文件,它将目录压缩到一个存档中,并将当前日期和时间作为名称的一部分,例如,Code_2008-10-14_2257.zip.有没有简单的方法可以做到这一点,独立于机器的区域设置?
我真的不介意日期格式,理想情况下它是yyyy-mm-dd,但任何简单都可以.
到目前为止,我已经有了这个,在我的机器上给了我Tue_10_14_2008_230050_91:
rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code
Run Code Online (Sandbox Code Playgroud)
我可以忍受这个,但它看起来有点笨重.理想情况下,它更简洁,并具有前面提到的格式.
我正在使用Windows Server 2003和Windows XP Professional.我不想安装额外的实用程序来实现这一点(虽然我发现有一些可以做很好的日期格式化).
我正在使用cmd.exe(C:\ WINDOWS\System32\cmd.exe),我必须将当前目录更改为"D:\ temp"即D驱动器中的临时文件夹.
当我尝试cd没有任何反应.
C:\> cd D:\temp
C:\>
Run Code Online (Sandbox Code Playgroud)
我不知道这里还能做什么.即使tab按键也不会给出任何提示.直到现在我还没有理由使用cmd.exe.我主要使用Linux进行开发.
如果这有帮助:我正在远程登录到另一台计算机并D:\temp在远程计算机上,但C:\我打开终端的位置也是如此(cmd.exe).
有没有办法找出文件是否是目录?
我在变量中有文件名.在Perl中,我可以这样做:
if(-d $var) { print "it's a directory\n" }
Run Code Online (Sandbox Code Playgroud) 这可能是一个简单的问题,但我找不到合适的答案.
如何在不关闭当前Windows PowerShell会话的情况下从当前Windows PowerShell会话中更新环境变量?
到目前为止,当我PATH从控制面板>系统修改环境变量时,我必须关闭当前会话并打开一个新会话,以便刷新变量或发出SetEnviromentVariable繁琐的变量.
我来自Linux世界,所以我正在寻找像source命令这样的东西.
我正在尝试重命名文件夹中的所有文件(所有.exe文件).我想替换所有下划线,例如空间qwe qwe qwe asd.exe来qwe_qwe_qwe_asd.exe.
我需要使用命令行执行此操作.我尝试了很多可能的解决方案,我在互联网上甚至在这个网站上找到了,但我无法让它发挥作用.
我还需要在"单行"/"一个命令"中执行此操作,但我会接受所有可行的答案.
我试图了解代码中的确切位置GOTO :EOF返回?
这是代码:
SET count=1
FOR /f "tokens=*" %%G IN (somefile.txt) DO (call :subroutine "%%G")
GOTO :EOF
:subroutine
echo %count%:%1
set /a count+=1
GOTO :EOF
Run Code Online (Sandbox Code Playgroud) 在Windows批处理脚本中,有一个start命令可以启动一个新进程.
是否有可能刚刚启动过程的PID?
Windows批处理文件中的长命令可以通过使用在Windows Vista批处理(.bat)文件中拆分多行的Long命令中^提到的方式拆分为多行.
但是,如果插入符号位于双引号字符串中,则不起作用.例如:
echo "A very long line I want to ^
split into two lines"
Run Code Online (Sandbox Code Playgroud)
这将打印"A very long line I want to ^并告诉我split是一个未知的命令.
有办法解决这个问题吗?
我正在尝试使我的Visual Studio构建脚本执行一个重要的.bat文件.
这就是我现在想做的事情:
cd "F:\- Big Packets -\kitterengine\Common\" Template.bat
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我必须这样做才能使它工作:
cd "F:\- Big Packets -\kitterengine\Common\"
F:
Template.bat
Run Code Online (Sandbox Code Playgroud)
但是这很难添加到Visual Studio脚本中.
我怎么能在一行中做到这一点?
我想运行一个ANT脚本,提示用户输入,因此需要通过控制台进行交互.同时我想将控制台内容记录到日志文件中.我知道我可以使用ant >build.log 2<&1哪个将重定向到文件,但将控制台留空.
那么,怎么做呢?在windows和unix上需要.
windows ×7
batch-file ×6
cmd ×3
command-line ×3
command ×1
datetime ×1
for-loop ×1
powershell ×1
prompt ×1
replace ×1
scripting ×1
shell ×1
unix ×1