[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/13 02:16 / Filesize : 294 KB / Number-of Response : 1050
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %13 【.bat】



1 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 14:52:07.84 ID:v84I4o+L.net]
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
echo.2ch.net/test/read.cgi/tech/1424858999/
【.cmd】 バッチファイルスクリプト %12 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1489207631/

それ以前の過去スレ
%10 peace.2ch.net/test/read.cgi/tech/1374205515/
%9  toro.2ch.net/test/read.cgi/tech/1335015478/
%8  toro.2ch.net/test/read.cgi/tech/1315844420/
%7  hibari.2ch.net/test/read.cgi/tech/1298873550/
%6  hibari.2ch.net/test/read.cgi/tech/1277465356/
%5  pc12.2ch.net/test/read.cgi/tech/1242268171/
%4  pc12.2ch.net/test/read.cgi/tech/1229955189/
%3  pc11.2ch.net/test/read.cgi/tech/1217860043/
%2  pc12.2ch.net/test/read.cgi/tech/1197881068/
%1  pc11.2ch.net/test/read.cgi/tech/1178281991/

32 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 21:28:59.92 ID:HLPPFLjR.net]
XPの駆除には苦労した。
Vistaの切られぶりには辟易。
管理者って損な役回りだよなぁ…。

今は7の駆除中。

33 名前:デフォルトの名無しさん [2018/12/06(木) 23:38:01.47 ID:UfR2YFj9.net]
>>18
ありがとうございます
レス内のものは上手く行きませんでしたが別でうまく行くものを作るためのヒントになりました

34 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 11:34:54.02 ID:k1b27fN5.net]
>>19
それパイプ処理してるコマンドの方の問題じゃなくて?

35 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 12:17:44.85 ID:cJMcluJv.net]
俺には何が原因か分からない
画面コンソール入力するたびに最下段にスクロールするし
スレチだけど
gpg -d で画面表示させるとエラー
gpg -h で画面表示させると文字化けまくり
cmd の表示関係が最近おかしい...

36 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 19:56:05.65 ID:iBsL10N5.net]
xcopyで出来ることは全てrobocopyでも出来るという認識で良いのでしょうか?

37 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 21:49:55.05 ID:cUniS7mm.net]
>>36
削られてるオプションもあるけど「出来ること」に関してはほぼその認識で合ってるんじゃないかな。
ただ、xcopy が対話指向なのに対して robocopy はバッチ指向になってる。(言い換えればログ指向)
コマンドを置き換えれば良いというものではない。場合によってはログが五月蠅い。

ま、今時、ネットワーク越しやバッチ処理でのコピーに xcopy は御法度レベルだから xcopy なんか忘れちゃってもいいと思う。

38 名前:not 36 mailto:sage [2018/12/07(金) 23:31:50.72 ID:J47iFz0r.net]
>>37
>ネットワーク越しやバッチ処理でのコピーに xcopy は御法度レベルだから xcopy なんか忘れちゃってもいいと思う。
そうだったのか、情報ありがとう
調べたらxcopyを使ったバッチファイルがあった、なおそ

39 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 20:14:50.36 ID:Zhb2FJyz.net]
xcopyはほぼフォルダ丸ごとコピー用途に使ってたから
/mirオプションで済むrobocopyの方が覚えやすくて助かるw
コピー自体も高速らしいし

40 名前:37 mailto:sage [2018/12/08(土) 22:52:01.33 ID:i9Z2WdJR.net]
>>38
xcopy はコピー中にネットワークが切れたりするとファイルがシレっと壊れるのだよ。
ノートPCがバッテリーアウトでハイバネーションに入るような時に起こりやすい。

対話式に目で動作を見ながらの分にはいいけど、それ以外の用途にはお勧めしないのだ。



41 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 23:16:46.42 ID:hZepSGXS.net]
単純コピーだったらxcopyの方がはるかに早かった気がするんだが

42 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 23:33:03.66 ID:fChhgbp6.net]
ネット越しだと、SSHが使えるrsyncがいいんだけど、
Windowsで使うにはcygwinが必要になるのでやや使いづらいかも

そこで、クラウドでも使えるrsyncという触れ込みのrcloneがいいかな
タイムスタンプだけが変更された時でも、実体をコピーすること無く、タイムスタンプだけを変更するなど、
それなりに賢い処理がされるようだ
もちろんローカルファイル同士でも使える

バッチによる基本的なバックアップ用途の使い方しかしていないけど、とにかく多機能でおすすめ
GoogleドライブやOneDriveなんかのクラウドへのバックアップも、バッチ処理で簡単にできる

43 名前:39 mailto:sage [2018/12/09(日) 10:35:27.52 ID:lZKvlyRa.net]
>>41
過去にrobocopyのが速いみたいな記事を見た気がしたんだが
今探しても見当たらないので記憶違いかもしれぬ…

44 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 12:03:09.26 ID:wwhUpKQ/.net]
Windows 10 19H1 で notepad が
BOM無しUTF-8がデフォルト になるそうだな...
いっそのこと コマンド プロンプトも変えてくれ

45 名前:デフォルトの名無しさん [2018/12/13(木) 07:50:54.80 ID:3pDLloxA.net]
バッチファイルの第一引数をファイル名にしたとして
ファイル名に&とか^が入るときどうやって処理すればいいの?
代入するとエスケープされて消えちゃうのよ。

46 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 09:07:24.92 ID:J8CqZcRY.net]
結局、BOM の有無を気にする開発者がいなかった。
欧米人には関係ないから

ただ、Explorer では、BOMが無いと、UTF-8・sjis の区別がつかないから、文字列で検索できなくなるから、
漏れは、Windows10・WSL・Ubuntu16.04 で、grep を使っている

47 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 09:48:12.16 ID:vKHUraGB.net]
>>45
入らないようにする

48 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 16:46:34.51 ID:H7Y/MSWd.net]
>>45 バッチファイルに直接D&Dで起動用のバッチ
というか他の起動方法なら引数を引用符で囲むだけだし

@ECHO OFF
IF "%~1"=="1" SHIFT /1 & GOTO MAIN
SET "A=%CMDCMDLINE:"=*%"
SET "A=%A:~0,-1%"
FOR /F "tokens=2* delims=*" %%I IN ("%A%") DO SET "B=%%I" & SET "C=%%J"
SET E="%B%" 1
:NEXT_ARG
SET "A=" & FOR /F "tokens=*" %%I IN ("%C%") DO SET "A=%%I"
IF NOT DEFINED A %E%
IF "%A:~0,1%"=="*" (SET "D=*") ELSE SET "D= "
FOR /F "tokens=1* delims=%D%" %%I IN ("%A%") DO SET "B=%%I" & SET "C=%%J"
SET E=%E% "%B%" & GOTO NEXT_ARG

:MAIN
SET /A N=0
:LOOP
IF "%~0"=="" PAUSE & GOTO :EOF
ECHO ARG%N%=%0
SET /A "N+=1" & SHIFT & GOTO LOOP

49 名前:デフォルトの名無しさん [2018/12/14(金) 07:43:35.08 ID:0Ppktz+s.net]
ありがとうございます。

50 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 01:06:37.50 ID:1s8Yv8lB.net]
dir ってオプション(スイッチ)の順番で表示が異なるのを発見
CD /D C:\
dir /AH /A-D
dir /A-D /AH



51 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 04:41:20.49 ID:s5MEHoIJ.net]
話変わるがスペース無くてもOK
CD/D"C:\
DIR/AH/A-D
DIR/A-D/AH

52 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 08:56:57.96 ID:q+o88Lhc.net]
その仕様のせいでパス区切り文字を/にすることができないという呪いが

53 名前:デフォルトの名無しさん [2018/12/16(日) 12:34:58.23 ID:2Wn8M764.net]
仕様がカオスになってるよね。
はやくLinuxcommandも標準対応して欲しい

54 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 00:07:47.83 ID:C+acxNdu.net]
>>53
DOSってMS最古だから、ビルベイツ謹製のコードか仕様が残っていて
今の社員は恐れ多くて変えられない
ということにしておこう

55 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 00:08:37.24 ID:msnfpX97.net]
>>51
そうだったのか、サンクス

56 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 07:58:43.76 ID:xQB1O269.net]
>>53
永久にならないから忘れろ

57 名前:デフォルトの名無しさん [2018/12/17(月) 19:54:34.22 ID:zeK+PGUB.net]
>>43だけどやっぱわからん!
sendtoにバッチファイル入れといてフォルダを指定します。
指定したフォルダの名前をechoで表示したいんだけど&^がフォルダ名に付けられているとフォルダ名表示が出来ない。

batファイル &というフォルダを右クリック送るをした時

@echo off
echo "%~f1"  これは表示できる
set fname="%~f1"
echo "%fname%" &や^が消えてしまう

どうやったら代入ができるの?エスケープに置き換えも一文字分しかできないし。

58 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:25:30.59 ID:CiJxr7Yn.net]
set "fname=%~f1"

59 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:26:56.58 ID:uU80GVRL.net]
>>57
echo %fname%

60 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:28:40.66 ID:uU80GVRL.net]
あ、ごめん
どっちでもいいよ



61 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 13:47:43.45 ID:ZTiiH/I2.net]
バッチファイル中の*.*で、そんなファイルはないとエラーが出た
もう一度実行するとこれまでどおり問題なしに実行

windows更新の影響かセキュリティソフトのせいかも知れないが、
ウィルスがコマンドをすり替えている可能性もあるから、バッチ中のコマンドはパスも含めて
たとえばnotepadでなくC:\Windows\notepad.exeの方が安全だなと思った

62 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:56:36.05 ID:ZNh/EsxI.net]
話変わるが
今は *.* としても意味無いよ * だけでOK

63 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 16:12:14.33 ID:06gMfJVc.net]
>>62
そうですか、昔のくせでつい
ありがとうございます

64 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 17:05:59.89 ID:ZNh/EsxI.net]
色んなソフト入れると %PATH% が膨れ上がる
使わないパスが30個とか..
気味が悪いのでバッチの先頭に
PATH C:\WINDOWS\system32;C:\WINDOWS;
と書くようにしてる

65 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:11:25.89 ID:xW7Pde1m.net]
既に存在しないフォルダが環境変数PATHに設定されてるとコマンド検索がそこで止まってしまう
こんなのを使って時々確認するといい。
powershell $env:path -split ';'^|%{$_ ,(test-path $_ -patht cont ^)}

66 名前:デフォルトの名無しさん [2019/01/11(金) 19:37:34.13 ID:WNI2j4XF.net]
遅延環境変数OFFでやると面倒だ
ONにするとパス名などの文字列の扱いが複雑化して読み取れないのが出る

67 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:39:03.28 ID:IAz54C40.net]
PowerShell で、$env:path -split ';' と打つと、

C:\WINDOWS\system32
C:\WINDOWS

Intel を除いて、これらが先頭に来る

68 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 07:44:55.84 ID:uK0WXiBn.net]
>>67
普通はね

69 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 09:23:20.28 ID:e5YcHVOA.net]
@echo off & set "p=%path%"
:v
for /f "delims=; tokens=1*" %%i in ("%p%") do set "p=%%j" & echo "%%i"
if defined p goto :v

おらの環境
"C:\Program Files (x86)\Common Files\Oracle\Java\javapath"
"C:\ProgramData\Oracle\Java\javapath"
"C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common"
"C:\Program Files (x86)\Intel\iCLS Client\"
"C:\Program Files\Intel\iCLS Client\"
"C:\WINDOWS\system32"
"C:\WINDOWS"

70 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 09:53:16.85 ID:e5YcHVOA.net]
マイクロソフトがどこまでチェックしているか知らんが
コマンド追加したら干渉する可能性はあるな



71 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 00:11:28.57 ID:xs+avKSw.net]
C:\HOGE
├─aaa
│ ├─old
│ │   aaa1.bat
│ │
│ └─src
│     aaa1.bat

├─bbb
│ ├─old
│ │   bbb1.bat
│ │
│ └─src
│     bbb1.bat

└─ccc
  ├─old
  │   ccc1.bat
  │
  └─src
      ccc1.bat


↑のoldフォルダとその中身を一括で削除したいのですが、コマンドでは難しいでしょうか?

72 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 00:13:41.92 ID:xs+avKSw.net]
↑HOGEの下には実際にはaaa〜cccのようなフォルダが無数にあります…

73 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 00:15:44.50 ID:xs+avKSw.net]
↑たびたびすみません。
正確に言うと「HOGE配下に存在する"old"という名前のフォルダとその中身を全て削除する」です。

74 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 02:15:14.20 ID:pk2ilGy6.net]
for /d /r
とif文つかえばいいだけじゃん

75 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 04:39:06.95 ID:K0yQSeRR.net]
del

76 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 07:09:39.32 ID:YWDkxQqJ.net]
FOR /R C:\HOGE %%I IN (.) DO rd/s/q "%%~I\old" 2> nul

77 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 07:32:36.37 ID:YWDkxQqJ.net]
バッチにするまでもない
直接入力なら%%を%に

78 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 09:22:02.93 ID:pk2ilGy6.net]
>>76
rdのところ
rd/s/q "%%~I\old\"
にした方がよいと思う

79 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:27:11.29 ID:pk2ilGy6.net]
おいらならこう書く

for /d /r c:\hoge %a in (old) rd /q /s %a

80 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:28:21.11 ID:xs+avKSw.net]
>>76
どうもありがとうございます!バッチリ削除できました。

>>78
私も>>78さんのコメントを読んで例えば"old2"という名前のフォルダがあったらこれも消えてしまうのかも?と思ったのですが、そんなことはありませんでした。
でも見た目でそのような疑問を覚える人もいるかもしれないなと思い、特に不要ではあるのですが"old"のあとに"\"を付けることにしました。
ありがとうございます。



81 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:36:33.72 ID:xs+avKSw.net]
でもrdはディレクトリ削除コマンドなんだから最後に"\"を付けるのは不自然か…

82 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:54:52.71 ID:YWDkxQqJ.net]
>>78 なぜ?
>>79 ワイルドカードじゃないとオプション /D は無意味
これでもいいが
FOR /R %%I IN (OLD) DO RD/S/Q "%%I" 2> NUL

83 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 11:08:28.37 ID:pk2ilGy6.net]
>>82
>ワイルドカードじゃないとオプション /D は無意味

ちゃんとフォルダのみをフ

84 名前:Bルタするよ、試してみてね []
[ここ壊れてます]

85 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 11:18:39.20 ID:YWDkxQqJ.net]
そうかな?
RD の前に echo 付けて見たら?
ファイルでも RD OLD がでるぞ
FOR のヘルプをよく見てね

86 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 21:18:15.33 ID:9WBiq3dN.net]
ざっくり言うと、
EternalForceBlizzard.bat C:\hoge
とかいうバッチが欲しいという中二に対して「俺なら!」「俺なら!」とやってた流れ…かな。

>>82
どうでもいいけど全部大文字とかやめれ。
内容は知らんが死ぬほどダサい。

87 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 21:58:45.27 ID:rFmuVz+a.net]
今後は小文字にするよ。気が変わるかもしれんが。
forの括弧内のファイルは存在しなくてもスキップしない
例外はワイルドカードで対象はファイル
/dだと対象はフォルダ
ただそれだけの話だ

88 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 11:52:34.58 ID:dXptnPwJ.net]
findstrの結果に文字列を連結したいのですがうまくいきません
どうしたらよういでしょういか?

cd /d %~dp0
type test1.txt | echo"りんご" & findstr "りんご" >> out.txt

89 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 14:00:46.60 ID:CTNOEPFx.net]
call :a "りんご" test1.txt > out.txt & goto :eof
:a
echo %1 & findstr %1 %2

90 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 15:31:22.37 ID:dXptnPwJ.net]
>88
ありがとうございます。

[りんご]
[りんごを含んだ文]
[りんごを含んだ文]
[りんごを含んだ文]

といった感じにでました。

[りんご][りんごを含んだ文]
[りんご][りんごを含んだ文]
[りんご][りんごを含んだ文]

という感じはならないでしょうか?



91 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 15:58:11.82 ID:CTNOEPFx.net]
call :a "りんご" test1.txt > out.txt & goto :eof
:a
for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i

92 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 16:44:03.03 ID:dXptnPwJ.net]
>90
おお!、うまくいきました。ありがとうございます!。
エクセルの&のように簡単なのかと思ったら以外と複雑な処理で驚きです。

93 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 17:08:05.17 ID:nMQEwTi4.net]
単に行数を少なくするだけの&の使い方で
デバッグもメンテの面でもいい事はないんで行を分けて書いたほうがいい

94 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 17:31:44.20 ID:CTNOEPFx.net]
そういうのは質問者の方で調整よろしくお願いします

95 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:02:51.94 ID:nMQEwTi4.net]
>>93
別に>>90に文句言ってるわけじゃなくて
質問者が&に感心してたので、質問者にアドバイスのつもりで書いただけ

96 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:15:04.06 ID:CTNOEPFx.net]
言いたい事は分かります。
はっきり言って自分用のバッチはこんな書き方はしません。
行数を抑える為に繋いでるだけなんで。
バランス見て改行します。すみません。

97 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:27:13.64 ID:nMQEwTi4.net]
って思ったら、質問者は&に感心してたわけじゃなくて
逆に&で簡単に書けない点が不満なんだな

98 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 19:15:10.41 ID:ak2Ch+AT.net]
Basic言語では&は文字列結合演算子だが
バッチスクリプトは出自からBasicじゃないので&は別の意味(ステートメントメント区切り)となる
文字列結合演算子自体が存在しない

99 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 13:46:03.43 ID:HgbeZ9kI.net]
昨日の質問者です、たびたびすみません

複数ワードを処理しようとして
call :a "りんご" test1.txt > out.txt
:a
for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i

call :a "みかん" test1.txt > out.txt
:a
for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i

としたところ、うまくいったのですが
これが5項目くらいになると
dos窓に「別のプロセスが使用中です」と表示されてしまいます。

なにかメモリ的なものがいっぱいになるのでしょうか?
回避方法はありますでしょうか?

100 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 15:17:41.73 ID:HwNiCy+r.net]
意味不明だが?

@echo off
call :a "りんご" test1.txt > out.txt
call :a "みかん" test1.txt >> out.txt
goto :eof
:a
for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i



101 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 15:33:11.44 ID:HwNiCy+r.net]
今時、メモリ不足とか滅多に無いよ。
バッチで80byte文字列の一万個の配列変数とかやったことあるけど
問題なかったよ。

102 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 16:10:02.06 ID:HgbeZ9kI.net]
>99さんの書式にするとうまくいきました

おそらく私が

:a
for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i

をいっぱい書いてしまったからかもしれません。

103 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 07:52:40.56 ID:ElV7iNpQ.net]
文字列:形式の「ラベル」はバッチファイル内でユニークにしてください。
今回のa:は共通サブルーチンなので、バッチ内で1つで良く、コードの最後に置きましょう。

サブルーチンを使う場合、メインルーチンのラストにはgoto :eof
を書くようにしてください。これが無いとメインが終わった後にまたサブルーチン処理が行われます。

104 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 07:58:36.47 ID:ElV7iNpQ.net]
またバッチ内で複数のサブルーチンを使いたい場合はそれぞれのサブルーチンの後にexit /bのコマンド行を付けてください。
exit /bによってメインルーチンに処理が戻ります。
これ無いと下の行に処理が遷移してしまいます

105 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 10:48:11.21 ID:4/xiY5nl.net]
なるほど、丁寧な説明ありがとうございます。

106 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 11:16:25.14 ID:tFfJW+eT.net]
cmdの基礎を勉強しろ
あまりにも質問のレベルが低いとレスがつかないと思え

107 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 02:44:12.08 ID:Aqg/y48e.net]
for %%I in (*.txt) do (
echo #%%I
)

*.txt だけでなく *.txt2 などもあれば表示する
.txt などの拡張子が3文字の時だけ4文字目以降を無視する
拡張子が2文字の時は問題なし
バグか仕様か

108 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 14:24:30.26 ID:dbRt9asv.net]
dir もね

他にもMS-DOS用の短い名前に反応したり
ワイルドカードは、いやらしい動作をするね

109 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:05:34.51 ID:H4+bjsi1.net]
dir c:\*1
でProgram Filesが表示されるやつか

110 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:23:46.61 ID:dbRt9asv.net]
del *~*
は危険



111 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 18:22:32.57 ID:VRMsBAkU.net]
8.3形式でもファイル見てるのね

112 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 21:48:09.10 ID:6/sri1HY.net]
>>107
dirまでそうでしたか
知らなかったのは私だけで、みんな知ってたのですね

DOSの特別実装仕様ということにしておこう

113 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 08:58:17.36 ID:2q4tHixb.net]
*.txt2 のファイル名を dir/x で見ると
*~1.TXT とか *~2.TXT になってるから
dir *.txt
dir *txt
dir *xt
dir *t
で一致するということね

114 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 10:18:01.03 ID:vf3NvI2M.net]
やっても良いPCなら OS インストール直後に
>fsutil 8dot3name set
で set 1 をして 8.3名作成を無効化するけど

>fsutil 8dot3name strip
を実際にはしたことがない俺チキン

115 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:32:35.83 ID:2q4tHixb.net]
これでOK
for %%i in (*.txt) do if /i "%%~xi"==".txt" echo %%i

116 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 23:00:03.97 ID:xTG5esR6.net]
以下のように「C:\hoge」の下の全ファイルのファイル名(拡張子は除く)を
"aaa"に書き換えたいのですが、どのようなコマンドを書けば良いのでしょうか?


■書き換え前

C:\hoge
│ あああ.txt
│ いいい.xlsx

├─hage
│ ううう.xml
│ えええ.docx

└─hige
おおお.jpeg
かかか.gif


■書き換え後
C:\hoge
│ aaa.txt
│ aaa.xlsx

├─hage
│ aaa.xml
│ aaa.docx

└─hige
aaa.jpeg
aaa.gif

117 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 23:02:17.45 ID:xTG5esR6.net]
すみません、higeの下のファイル名がずれてしまいました。
正しくは↓です。


■書き換え前

└─hige
  おおお.jpeg
  かかか.gif


■書き換え後

└─hige
  aaa.jpeg
  aaa.gif

118 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 23:05:19.42 ID:xTG5esR6.net]
それと、同一フォルダ内に同じ拡張子のファイルは複数存在しません。

119 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 23:08:58.74 ID:rXc7x2eo.net]
for文とmv組み合わせでしょ
サイト2個検索した方が聞くよりはやくできるとおもうけど
なんで質問したの?

120 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 06:30:48.56 ID:Hb9ZoB2m.net]
>>115
for /r "c:\hoge" %%i in (*) do ren "%%~fi" "aaa%%~xi"



121 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 09:50:06.91 ID:Hb9ZoB2m.net]
話変わるが
for に /r を付けたら
%~nxi の引用符が何故かとれない

>for %i in ("abc") do @echo %~nxi
abc

>for /r %i in ("abc") do @echo %~nxi
"abc"

>for /r %i in ("abc*") do @echo %~nxi
abc

122 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 10:03:42.75 ID:/Qrw8ZSg.net]
管理者として実行したいアプリ、さらに優先度を低で起動させる方法ありますか?
さらにそれをスタートアップに登録したいんです

123 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 10:09:52.10 ID:e0NdV1CM.net]
タスクに登録すれば?

124 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 10:57:12.10 ID:Hb9ZoB2m.net]
start /LOW のコマンドのショートカットを
スタートアップのフォルダに入れりゃいいんじゃね
ショートカットの設定は管理者にして

125 名前:117 mailto:sage [2019/02/19(火) 20:46:10.94 ID:kZ82VOHH.net]
>>118
ネットで探したのですが、バッチファイルをやり始めて日が浅いので使うコマンドの見当も付きませんでした。
今日職場で必要だったので聞いてしまいました。

>>119
助かりました。
どうもありがとうございます。

126 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:04:58.50 ID:GzdyKGwx.net]
聞いたほうが早いならそれでもいいと思うよ。

127 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 08:00:48.35 ID:vs0GH/UB.net]
AzureAD、Office365を使うなら(Office365についてはGraphの使いこなしも必須)。バッチやVBSの代替としても必須。
「Powershellが出来る」だけではなくPowershellも活用し、なんの業務をしてたか?がスキルとなる基本的にはインフラ屋のスキルの一要素

128 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 08:01:45.93 ID:vs0GH/UB.net]
すみません
>>126は誤爆

129 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 18:42:23.51 ID:WAQ7+H44.net]
環境変数の中に=があると
変数参照が変な事になってくるな...

>set a=b=c

>echo %a%
b=c

>echo %a=b%
c

130 名前:デフォルトの名無しさん [2019/02/21(木) 19:45:58.39 ID:bhin4IwL.net]
イコールは^つけないと特殊な動作するはず



131 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:25:05.21 ID:WAQ7+H44.net]
俺も最初はそう思ったんだけど...

>set a=b^=c

>echo %a=b%
c

132 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 21:37:53.86 ID:m0MzDbdd.net]
ならないんだけど?(win7)
BATだと
ECHO は <ON> です。
ダイレクトだと
%a=b%






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<294KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef