繁体   English   中英

在Windows批处理文件的多个命令中使用Powershell变量

[英]Using a powershell variable in multiple commands within a Windows batch file

在Windows 7批处理文件中,我可以调用powershell v2创建一个字符串,然后将该字符串分配给一个批处理文件变量,以便以后在另一个命令中使用,例如:

for /f "delims=" %%a in ('powershell -noninteractive -NoProfile -Command "Get-Date -format 'yyyy-MM-dd HH_mm_ss'"') do set "datetime=%%a"
rem process file1.txt here
ren file1.txt "newname %datetime%.txt"

如果我尝试以更简单的方式(在批处理文件中)执行相同的操作,则无法使用:

编者注:事实证明它确实起作用-内部的"实例正确地转义为\\"

powershell -noninteractive -NoProfile -Command "$datetime_string = Get-Date -format 'yyyy-MM-dd HH_mm_ss'; (gc file1.txt) -join [char]10 | Out-File -Encoding Ascii \"newname $datetime_string.txt\""

你能帮我吗?

如果内部双引号有问题,则可以简单地避免使用它们:

powershell -NonI -NoP -Com  "$DT=Get-Date -format 'yyyy-MM-dd HH_mm_ss';(gc file1.txt) -join [char]10|Out-File ('newname '+$DT+'.txt') -Enc Ascii"

为了简洁起见,请尽可能缩短参数名和变量名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM