我正在尝试将一些长的多行命令行命令复制/粘贴到 Windows 10 命令提示符中。
Linux 为此使用“\”字符,因此例如在 Linux 中,您可以将以下内容从网站或文本文件复制/粘贴到终端窗口中(我假设此处使用图形桌面环境):
python retrain.py \
--bottleneck_dir="/tf_files" \
--how_many_training_steps=500 \
--model_dir="/tf_files" \
--output_graph="/tf_files/retrained_graph.pb" \
--output_labels="/tf_files/retrained_labels.txt" \
--image_dir="/tf_files/flower_photos"
然后按 Enter 键,命令将运行。这在网站或您保存的文本文件中看起来更加清晰。
问题是,我似乎无法为此找到一个 Windows 等效项。我意识到 ^ 字符在这种情况下相当于 Linux \ 字符,但它似乎不适用于复制/粘贴。例如,如果创建一个文本文件“dummy1.txt”,则复制/粘贴以下内容:
copy dummy1.txt ^
dummy2.txt
(注意第一行^字符两边有一个空格)
我明白了:
对于这两行示例来说,这并不重要,但对于更复杂的命令(例如上面的 python 脚本),将所有需要复制/粘贴的文档中的所有内容放在一行上,从而严重牺牲可读性。有没有办法让它在 Windows 上工作?如果这很重要的话,我目前正在使用 Windows 10。
我认为你需要像这样对它进行powershellafy:
$retrain = @{
bottleneck_dir = “/tf_files”
how_many_training_steps = “500"
model_dir= "/tf_files"
output_graph = "/tf_files/retrained_graph.pb"
output_labels = "/tf_files/retrained_labels.txt"
image_dir = "/tf_files/flower_photos"
}
#imaginary equivalent script
retrain.ps1 $retrain
如果您只是想将行分成多行,则转义字符是反勾号`
get-longcommand -name "long command" `
-date "today" `
-other-info "other stuff"
最后,请了解“Foreach”循环。有很多种,这里是简单的一种
$copy_list = @(get-childitem "C:\Path\to\files")
$new_dest = "C:\New\File\Destination"
foreach ($file in $copy_list) {
#This is for troubleshooting, outputs which file it is running
$file
copy-item -Path $file -Destination $new_dest
}
可能有类似$file.fullname之类的东西来传输路径。如果您使用 Powershell ISE,并使用调试例程,请在循环中的“$file”之后立即暂停,您可以看到详细信息。
享受吧!
为什么要尝试在插入符号后粘贴带有空格的命令? OP 给出的示例 Linux 代码在换行符“\”反斜杠之后不包含空格。 @Eryk 的评论解释说插入符号需要转义换行符。
这里准备粘贴win 10命令提示符的片段;第一个在插入符号之后没有尾随空格,第二个在第一个插入符号之后有一个空格。
dir C:\Windows ^
/A-D ^
/OS
dir C:\Windows ^
/A-D ^
/OS
预计第一个代码片段(分为三行)将作为单个命令执行,而第二个代码片段及其尾随空格将作为两个命令执行失败。